0

我有以下形式的输出:

 {"status":"07\/09\/201207:16||heythisisatestquestion||AndyesIreallyansweredthisquestiontoo-||07\/09\/201207:10||heythisistestquestion||ThisismyresponsetoyourTESTquestion-yes,Ireallyansweredyou.:-)||07\/09\/201206:29||sos||SOSagain-yes||07\/09\/201206:27||sos||SOSagain-yes||07\/09\/201205:05||test||Yes,respondingtothisTEST-yes,it'sworking","phone":"xxxxxxxxx"}

我想要做的是,我应该让每个值用 || 分隔 在一个数组中

例如:

 **07\/09\/201207:16 .. 07\/09\/201207:10 .. 07\/09\/201206:29**  should be in array date

 **heythisisatestquestion .. heythisistestquestion .. sos** should be in array question 

 **AndyesIreallyansweredthisquestiontoo .. ThisismyresponsetoyourTESTquestion .. Ireallyansweredyou** 

应该在数组 Answers 中,如何通过匹配关键字 || 分隔每个值。

4

2 回答 2

1

首先,您应该解析 JSON 以获取状态字符串。

然后将状态字符串沿"\\|\\|". 即.split("\\|\\|")。并挑选出 3 个一组的令牌。

假设状态文本的格式始终有效:

 ArrayList<String> date = new ArrayList<String>();
 ArrayList<String> question = new ArrayList<String>();
 ArrayList<String> response = new ArrayList<String>();

 for (int i = 0; i < tokenArray.length / 3; i++) {
     date.add(tokenArray[i * 3]);
     question.add(tokenArray[i * 3 + 1]);
     response.add(tokenArray[i * 3 + 2]);
 }
于 2012-07-10T05:35:44.420 回答
1

如果您使用 PHP 生成 JSON,您可以使用表达式在explode中找到类似的函数 ,然后发送数组或在 java 中

    int count=0;
        String[] arr;
        arr=str.split("\\|\\|");
        for(int i=0,j=1,k=2;i<str.length;i+=3,j+=3,k+=3)
    {

    array1[count]=arr[i];
    array2[count]=arr[j];
    .....
    .....
count++;

    }
于 2012-07-10T05:51:35.307 回答