JSON

jsonc库的安装以及简单使用

字号+ 作者:H5之家 来源:H5之家 2016-05-15 13:03 我要评论( )

if 0 1:cpp在linux下的配置 JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。 关于 JSON 更具体的信息,可参见 JSON 官网:。 jsoncpp 是比较出名的 C++

if 0

1:cpp在linux下的配置
JSON 官方的解释为:JSON 是一种轻量级的数据传输格式。

关于 JSON 更具体的信息,可参见 JSON 官网:。

使用

一、安装

jsonc库的源码可以从github上下载:https://github.com/jehiah/json-c。

下载完的源码解压后,在目录下的个README.MD文件,我们根据文件中提示的步骤对jonsc进行安装:

  • 下载安装时必要的工具:libtool, gcc, autoconf。我们可以使用软件包管理工具安装它们。比如在ubuntu下,可以使用命令
  • sudo apt-get install gcc libtool autoconf
    安装这三个工具。
    2. 按照README.MD文件,运行以下命令

    sh autogen.sh
    ./configure
    make
    sudo make install
    3. 安装完后,一般会在/usr/local/include下生成jsonc的头文件,以及在/usr/local/lib下生成jsonc的库文件,检查一下即可。

    二、使用
    该部分内容引用自

    include include include include include “json.h”

    int main(int argc, char **argv)
    {
    struct json_object *new_obj;
    MC_SET_DEBUG(1);
    // I added some new lines… not in real program
    new_obj = json_tokener_parse(“/* more difficult test case */ { /”glossary/”: { /”title/”:
    /”example glossary/”, /”pageCount/”: 100, /”GlossDiv/”: { /”title/”: /”S/”, /”GlossList/”:
    [ { /”ID/”: /”SGML/”, /”SortAs/”: /”SGML/”, /”GlossTerm/”: /”Standard Generalized Markup Language/”, /”Acronym/”: /”SGML/”, /”Abbrev/”: /”ISO 8879:1986/”, /”GlossDef/”:
    /”A meta-markup language, used to create markup languages such as DocBook./”,
    /”GlossSeeAlso/”: [/”GML/”, /”XML/”, /”markup/”] } ] } } }”);

    printf(“new_obj.to_string()=%s/n”, json_object_to_json_string(new_obj));
    new_obj = json_object_object_get(new_obj, “glossary”);
    printf(“new_obj.to_string()=%s/n”, json_object_to_json_string(new_obj));
    new_obj = json_object_object_get(new_obj, “pageCount”);
    int pageCount = json_object_get_int(new_obj);
    printf(“Page count = %d”, pageCount);
    json_object_put(new_obj);
    return 0;
    }
    下面,我们对这个例子进行解析:
    第8行: 声明一个struct json_object类型的指针,struct json_object是用于存储json数据的一种结构类型。
    第11行: 使用json_tokener_parse()函数,电脑学习,将字符串化的json数据转化为struct json_object类型的json
    第17行: 与第11行的作用相反,json_object_to_json_string()函数可以将struct json_object类型的json数据转化为字符串。
    第18行: 使用json_object_object_get()函数,从struct json_object的json数据中,寻找key为”glossary”的value。并将这个value作为一个新的struct json_object类型返回。
    第21行: json_object_get_int()函数可以将类型为struct json_object的json数据转化为相应的int类型的数据。与此类似,也有json_object_get_string(), json_object_get_double()等一系列方法。
    第23行: json_object_put()函数类似于free()函数,释放之前分配的new_object所占用的空间。

    其实,在安装Jsonc库之后,我们可以在jsonc的目录下面找到test文件夹,下面有很多jsonc库的应用实例可以参考。上面所引用的博客中的例子,也是改自于test文件夹下面的程序。

    上面的例子,只是解释如何从一个json字符串中获取到必要的信息,如果需要组装自己的json结构,可以参考jsonc API 文档页面:

    Share this:

    endif

    (责任编辑:admin)

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • centos6.5安装open-falcon

      centos6.5安装open-falcon

      2016-04-17 16:00

    • C++ Builder 里面使用 JsonCpp 和 JsonCpp 支持 UNICODE (UTF

      C++ Builder 里面使用 JsonCpp 和 JsonCpp 支持 UNICODE (UTF

      2016-04-08 15:00

    • 详解C++的JSON静态链接库JsonCpp的使用方法

      详解C++的JSON静态链接库JsonCpp的使用方法

      2016-04-02 14:00

    • GDAL的java环境配置以及将shp转换为json

      GDAL的java环境配置以及将shp转换为json

      2016-03-21 13:00

    网友点评