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

使用strtok()将JSON解析为二维数组,json,strtok,Json,Strtok,我试图使用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 *tok

我试图使用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

为什么要实现自己的json解析器?如果这不是为了学习,我强烈建议不要这样做,有很多json解析器可以产生有效的结果,并且可以快速测试。不要试图使用自己的代码()解析JSON,2。不要写“维度”,因为它会伤害我的眼睛。谢谢谢谢我得到了一个很好的答案: