我正在尝试使用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