使用strtok()将JSON解析为二维数组
我试图使用strtok()将JSON数据解析为二维字符数组。但效果不好。(我知道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
{"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。不要写“维度”,因为它会伤害我的眼睛。谢谢谢谢我得到了一个很好的答案: