我尝试了 cJSON,发现即使我给出了一个正确的 JSON,然后是一个不正确的 JSON,它也会将整个内容放入其parse_buffer
结构 (in cJSON.c
) 中并且只解析正确的 JSON。我可以通过执行以下操作轻松获得总解析内容的长度:
buffer.length
在cJSON.c
解析完成后。
如果我有一个包含以下内容的文件:
{
"text": "HelloWorld!!"
}
{
"text" : "incompletejson"
cJSON 将整个内容放入其缓冲区并仅解析有效部分。
如果在我的程序中我写:
//open file and read contents in buffer
/* Parse buffer into cJSON structure */
cJSON *root = cJSON_Parse(buffer);
char *text = cJSON_GetObjectItem(root, "text")->valuestring;
printf("text: %s\n", text);
它打印出来HelloWorld!!
。
有没有办法只获取已解析内容的长度,即已解析的正确 JSON?这在 cJSON 中有可能吗?