淘先锋技术网

首页 1 2 3 4 5 6 7

C语言中如何将json字符串进行解析和操作呢?

#include <stdio.h>
#include <jansson.h>
int main() {
char *json_data = "{\r\n    \"name\":\"Tom\",\r\n    \"age\":18,\r\n    \"hobby\":[\"reading\",\"music\",\"sports\"]\r\n}";
json_error_t json_error;
json_t *json_root = json_loads(json_data, JSON_DECODE_ANY, &json_error);
if (!json_root) {
printf("json_string error: on line %d: %s\n", json_error.line, json_error.text);
} else {
json_t *json_name = json_object_get(json_root, "name");
const char *name = json_string_value(json_name);
printf("name=%s\n", name);
json_t *json_age = json_object_get(json_root, "age");
int age = json_integer_value(json_age);
printf("age=%d\n", age);
json_t *json_hobby = json_object_get(json_root, "hobby");
int hobby_size = json_array_size(json_hobby);
printf("hobby size=%d\n", hobby_size);
for (int i = 0; i < hobby_size; ++i) {
json_t *json_hobby_item = json_array_get(json_hobby, i);
const char *hobby = json_string_value(json_hobby_item);
printf("hobby=%s\n", hobby);
}
json_decref(json_root);
}
return 0;
}

以上代码演示了如何使用c语言中的json-c库进行json字符串的解析和操作。需要注意的是,我们在解析后一定要记得使用函数 json_decref 释放掉 json_root 所占用的内存。