c 解析json列表—代码示例

quanzhankaifa

温馨提示:这篇文章已超过199天没有更新,请注意相关的内容是否还可用!

c 解析json列表—代码示例

C语言中解析JSON列表的常用方法是使用第三方库,比如json-c库。该库提供了一些函数来解析和操作JSON数据。

需要包含json-c库的头文件,例如:

#include <json-c/json.h>

然后,可以使用json_tokener_parse()函数将JSON字符串解析为json_object对象。该函数将会返回一个指向json_object对象的指针,可以通过该指针来访问JSON数据。

const char *json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

struct json_object *json_obj = json_tokener_parse(json_str);

接下来,可以使用json_object_object_get()函数来获取JSON对象中的键值对。该函数接受两个参数,第一个参数是json_object对象,第二个参数是要获取的键的名称。

struct json_object *name_obj = json_object_object_get(json_obj, "name");

const char *name = json_object_get_string(name_obj);

可以使用json_object_get_type()函数来获取JSON对象的类型。该函数接受一个json_object对象作为参数,并返回一个枚举类型的值,表示JSON对象的类型。

enum json_type name_type = json_object_get_type(name_obj);

需要记得释放json_object对象的内存,以免造成内存泄漏。

json_object_put(json_obj);

通过json-c库提供的函数,我们可以方便地解析JSON列表并获取其中的数据。以下是完整的示例代码:

#include <stdio.h>

#include <json-c/json.h>

int main() {

const char *json_str = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";

struct json_object *json_obj = json_tokener_parse(json_str);

struct json_object *name_obj = json_object_object_get(json_obj, "name");

const char *name = json_object_get_string(name_obj);

enum json_type name_type = json_object_get_type(name_obj);

printf("Name: %s\n", name);

printf("Type: %d\n", name_type);

json_object_put(json_obj);

return 0;

}

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码