1

我尝试了 cJSON,发现即使我给出了一个正确的 JSON,然后是一个不正确的 JSON,它也会将整个内容放入其parse_buffer结构 (in cJSON.c) 中并且只解析正确的 JSON。我可以通过执行以下操作轻松获得总解析内容的长度: buffer.lengthcJSON.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 中有可能吗?

4

0 回答 0