cjson如何判断获取不到字段
时间: 2023-12-13 18:02:34 浏览: 73
在使用 cjson 库解析 JSON 字符串时,可以使用 cJSON_GetObjectItem 函数来获取 JSON 对象中的字段。如果该字段不存在,则该函数返回 NULL。
例如,假设有一个 JSON 对象如下:
```json
{
"name": "Alice",
"age": 20
}
```
我们可以使用以下代码来获取 "name" 和 "gender" 字段:
```c
#include "cJSON.h"
int main() {
const char* json_str = "{\"name\":\"Alice\",\"age\":20}";
cJSON* root = cJSON_Parse(json_str);
if (root != NULL) {
cJSON* name = cJSON_GetObjectItem(root, "name");
if (name != NULL) {
printf("Name: %s\n", name->valuestring);
}
cJSON* gender = cJSON_GetObjectItem(root, "gender");
if (gender == NULL) {
printf("Gender not found.\n");
}
cJSON_Delete(root);
}
return 0;
}
```
输出结果为:
```
Name: Alice
Gender not found.
```
可以看到,当获取不存在的 "gender" 字段时,cJSON_GetObjectItem 函数返回 NULL,我们可以根据返回值来判断该字段是否存在。
阅读全文