C JSON 获取键值对
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_string = "{ \"name\": \"Jack\", \"age\": 25 }"; json_error_t error; json_t *root = json_loads(json_string, 0, &error); if (!root) { printf("error on line %d: %s\n", error.line, error.text); return -1; } json_t *name = json_object_get(root, "name"); const char *name_str = json_string_value(name); json_t *age = json_object_get(root, "age"); int age_int = json_integer_value(age); printf("Name: %s\nAge: %d\n", name_str, age_int); json_decref(root); return 0; }
以上代码演示了如何使用 C 语言解析一个 JSON 字符串并获取其中的键值对。
首先需要使用json_loads
函数将 JSON 字符串解析为一个json_t
对象,解析过程中如果出现错误会返回0
。解析成功后,可以使用json_object_get
函数获取 JSON 对象中某个属性对应的值,返回的是一个json_t
对象。
使用json_string_value
函数或json_integer_value
函数获取字符串或整数类型的属性值,其中,字符串类型的属性值返回的是一个const char *
类型的指针,整数类型的属性值返回的是一个int
类型的整数。
最后需要使用json_decref
函数释放json_t
对象的内存。