使用json-glib解析json数据

json是什么我就不说了,之前一直都是通过正则表达式简单地找出自己想要的元素,但这种方法在一些格式不算太复杂数据比较少的情况下还是能够勉强达到效果的,但是当格式比较复杂且要取得的元素有多个相同的键时这时就麻烦了,于是就打算找个json解析库来完成工作。

c语言的json解析库还是很多的,但这段时间没有做解析json数据的需要,所以也一直没有去找个库做练习,当一次在gtk官网浏览文档的时,在参考文献列表里无意扫到了json-glib的时候我来了兴趣,于是就准备以后选择使用json-glib来做json数据解析。文档中是json-glib的手册,但里面是介绍函数的,我看着这些函数,然后自己着手试着去写了一个程序做测试,但结果却不怎么好,在经过测试后我只简单地解析出来了一个string值,但array里面的值我却怎么也解不出来,函数列表从头扫到尾扫了好几遍也没发现该怎么做,没办法,于是准备去google搜索下json-glib解析json数据的例子,找是找到了,不过我却并没有高兴起来,因为那些示例中,解析的部分和我做测试写的程序基本上一样的,中文的文章是一个没有,英文的文章也只有这部分,其它具体的示例却怎么也找不到。。。万般无奈之下我再次去看函数列表以期找到答案,但没有结果,然后再仔细地去看示例中解析的部分,然后一点一点地在程序中做输出做测试,最终终于让我成功地解析了array中的元素,兴奋之余准备将其写出来。

json-glib是使用GLib写的c语言json库,用它可以做json数据格式的解析同样也可以用它生成json格式的数据,这里我只说如何解析json数据,对于生成json数据请自行看json-glib的官方示例程序。下面直接放代码吧,然后在代码中做注释说明。

编译
gcc -o json json.c pkg-config --cflags --libs json-glib-1.0

这个程序我们解析了json格式数据中items成员中的一个数组,我们输出该数组中的三个成员的值,这三个成员分别是title,snippet和link,这个json格式的数据是使用Google CusTom Search API查询枯龙吟返回的数据,由于我返回了10个结果,所以数据比较多,但我们解析的只是数组中的三个成员,所以只要看这些就够了,下面是json的数据,大家可以拿去做测试

–阅读次数(128)

发表评论

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

*