淘先锋技术网

首页 1 2 3 4 5 6 7

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对象的内存。