0

我正在尝试使用 strtok() 将 JSON 数据解析为二维字符数组。但效果不好。(我知道 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
4

0 回答 0