C语言从json串中取出子json字符串
时间: 2023-07-08 07:54:55 浏览: 100
C语言输出字符串的子串
在C语言中,可以使用json-c库来解析JSON字符串。具体来说,可以使用json_object_get函数获取JSON对象中指定键的值,如果该值又是一个JSON对象,可以使用json_object_to_json_string函数将其转换为字符串。以下是一个简单的例子:
```c
#include <stdio.h>
#include <json-c/json.h>
int main() {
// 假设json_str是一个JSON字符串
const char *json_str = "{\"name\": \"Tom\", \"age\": 20, \"address\": {\"city\": \"Beijing\", \"country\": \"China\"}}";
// 解析JSON字符串
struct json_object *json_obj = json_tokener_parse(json_str);
// 获取address子JSON对象
struct json_object *address_obj;
json_object_object_get_ex(json_obj, "address", &address_obj);
// 将address转换为字符串
const char *address_str = json_object_to_json_string(address_obj);
// 输出结果
printf("address_str: %s\n", address_str);
// 释放内存
json_object_put(json_obj);
return 0;
}
```
在上面的例子中,我们首先使用json_tokener_parse函数解析JSON字符串,然后使用json_object_object_get_ex函数获取JSON对象中的"address"键对应的值,这个值是一个子JSON对象。最后,我们使用json_object_to_json_string函数将子JSON对象转换为字符串,输出结果即为子JSON字符串。需要注意的是,我们需要在使用完JSON对象后,调用json_object_put函数来释放内存。
希望这可以帮到你。
阅读全文