使用json-c解析json数据

之前写过一篇使用json-glib解析json的文章,作为本人解析json使用的第一个库其实我还是比较喜欢json-glib的,但是json-glib也有一个问题,那就是依赖的问题,json-glib依赖glib,也就是说如果想使用json-glib那么就必需要安装glib,当然这在linux下是非常容易解决的,但在windows下我始终未成成功编译json-glib,即使我已经安装了glib,但还是有很多其它的依赖问题需要解决,有鉴于此,我准备找一个新的json解析库,要比较简单的,依赖没有那么繁琐的,于是就选择了json-c。

json_type_boolean
json_type_int
json_type_double
json_type_string
json_type_object
json_type_array
分别代表了json中的布尔类型、整型、浮点型、字符串类型、对象以及数组

使用json_object_get_type可以得到一个对象的数据类型

enum json_type json_object_get_type(json_object *obj);

加载json数据进行解析可以从字符串中加载也可以从文件中加载,函数分别是

json_object *json_tokener_parse(const char *string);

json_object *json_object_from_file(const char *filename);

使用json_object_object_get函数可以以关键词从一个对象中获取另一个对象

json_object *json_object_object_get(json_object *obj,const char *key);

使用json_object_put函数来释放内存

void json_object_put(json_object *obj);

想要得到json数据中的数值有以下函数

json_object_get_boolean

json_object_get_int

json_object_get_double

json_object_get_string

对于数组对象,使用json_object_array_length可以得到数组的数量

使用json_object_array_get_idx得到具体的数组对象(从0开始)

包含的关文件为json/json.h

使用gcc编译的参数为-ljson

这样基本上简单地解析一个json数据有以上函数就已经足够了,下面还是以之前使用Google Custom Search API返回的一个json数据为例,将返回的10个结果中的标题、链接以及描述解析出来,下面先放代码

 

下面是json数据

–阅读次数(258)

发表评论

电子邮件地址不会被公开。

*