我正在尝试用 C 做一个解析器来读取 JSON。
我需要像这样解析一个表:
char rosa[1024] ="\"358\":{\"myItem\":12,\"1\":{1,0},\"2\":{0, 0}},\"352\":1";
sscanf(rosa, "%[}}]s",rosa);
输出:
"358":{"myItem":12,"1":{1,0
我需要提取第一个键值对。 所以,我试着做一个
sscanf
,但它一直读到第一个}
,直到}}
.
有什么建议吗?
致以诚挚的问候。
使用
strstr(rosa, "}}")
检测rosa[]
是否包含}}
。
char *end = strstr(rosa, "}}");
if (end) {
printf("<%.*s>\n", (int) (end - rosa) + 2, rosa);
} else {
printf("Not found\n");
}
尝试使用
strchr
。 char* start = strchr(rosa, '{'); char* end = strchr(start, '}');
。然后计算出你要获取的子串的长度,复制到新的一行。
你应该得到这样的东西:
char* start = strchr(rosa, '{');
char* end = strchr(start, '}');
if(start && end)
{
int len = end - start + 1;
char result[1024];
strncpy(result, start, len);
result[len] = '\0';
printf("Output: %s\n", result);
}