使用strtok()将JSON解析为二维数组

时间:2013-01-31 20:29:29

标签: json strtok

我正在尝试使用strtok()将JSON数据解析为二维char数组。但它效果不好。 (我知道strtok会更改原始文件,所以我有一个临时缓冲但它不起作用)

这是JSON数据:

{"data":[
[13,0,31,20,17,59],
[5,1,0,0,0,0],
[0,9,26,24,0,1],
[7,9,57,31,0,0],
[5,1,0,0,0,0]
]}

这是我的代码:

int parser(char *buffer){

      char *pStr;
      char *token;
      char *t;
      char *p;
      int size;
      char temp[100];
      pStr = strstr(buffer, "{\"data\":[[");
      //offet by 9 to reach the JSON data
      pStr=&pStr[9];
      token=strtok(pStr,"[");
      printf(token);

      while(token != NULL)
      {
          p = strstr(token, "]");
          size=p-token;
          memcpy(temp, token, size);
          t=strtok(temp,",");
          while(t != NULL){
                      printf(t);
              t = strtok(NULL, ",");
          }
          token = strtok(NULL, "[");
      }
    return 0;
}

结果看起来临时缓冲区不起作用。我错过了什么?非常感谢。

13,0,31,20,17,59],
13
0
31
20
17
59

0 个答案:

没有答案