json_objec C语言从json字符串中取出子json字符串
时间: 2023-08-17 12:38:31 浏览: 112
可以使用第三方库,例如 cJSON,来解析 JSON 字符串,然后取出需要的子 JSON 对象。
以下是一个示例代码:
```c
#include <stdio.h>
#include "cJSON.h"
int main() {
const char *json_str = "{\"person\":{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}}";
cJSON *root = cJSON_Parse(json_str);
if (root != NULL) {
cJSON *person = cJSON_GetObjectItem(root, "person");
if (person != NULL) {
cJSON *name = cJSON_GetObjectItem(person, "name");
cJSON *age = cJSON_GetObjectItem(person, "age");
cJSON *city = cJSON_GetObjectItem(person, "city");
if (name != NULL && name->valuestring != NULL) {
printf("Name: %s\n", name->valuestring);
}
if (age != NULL && age->valueint > 0) {
printf("Age: %d\n", age->valueint);
}
if (city != NULL && city->valuestring != NULL) {
printf("City: %s\n", city->valuestring);
}
}
cJSON_Delete(root);
}
return 0;
}
```
以上代码可以从 JSON 字符串中取出 "person" 子 JSON 对象,然后再从 "person" 中取出 "name"、"age"、"city" 三个子字符串并打印输出。请注意,这里使用 cJSON_Parse 函数将 JSON 字符串解析成 cJSON 对象,然后使用 cJSON_GetObjectItem 函数获取具体的子 JSON 对象和子字符串。
阅读全文