zoukankan      html  css  js  c++  java
  • Linux平台下C++使用JsonCPP解析Json字符串

    JsonCPP安装

    安装 scons

    下载地址
    http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download
    百度网盘
    https://pan.baidu.com/s/1tW57c9s3iCeoDi4OIDyEPQ 密码:2wd5
    解压

    tar -zvxf scons-2.1.0.tar.gz
    

    进入到解压目录scons-2.1.0,执行命令:

    sudo python setup.py install
    

    安装 JsonCPP

    下载地址
    http://sourceforge.net/projects/jsoncpp/
    解压

    tar -zvxf jsoncpp-src-0.5.0.tar.gz
    

    进入到jsoncpp解压目录下,执行命令:

    sudo scons platform=linux-gcc
    

    还要以下两步操作:

    1. /jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到 /usr/local/include/
    2. jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a拷贝到 /usr/local/lib/ 下,并为了方便使用,将其重命名为libjsoncpp.a

    到此,配置已经完成,只需要在代码中添加头文件:#include <json/json.h>即可。

    程序测试

    注意:在编译里指定动态链接库的地址:-ljsoncpp
    测试程序

    int main()
    {
        string jsonStr = "{"userName":"123456","userPassword":"111111"}";
        Json::Reader reader;
        Json::Value value;
        reader.parse(jsonStr,value);
        Json::Value::Members member = value.getMemberNames();
        for(Json::Value::Members::iterator iter = member.begin();iter != member.end(); ++iter)
        {
            cout<<(*iter)<<endl;    //获得key
            cout<<value[*iter].asString()<<endl;    //获得value
        }
        return 0;
    }
    

    编译
    注意:链接库-ljsoncpp的名字和你拷贝到 /usr/local/lib/ 下时重命名有关

    g++ -o JsonTest JsonTest.cpp -ljsoncpp
    

    问题

    如果找不到路径的错误,需要编辑/etc/ld.so.conf文件,此文件记录了编译器编译时使用的动态库路径!那我们把/usr/local/lib路径加入到文件末尾就可以了!

  • 相关阅读:
    第十二周学习进度条
    寻找水王
    第十一周进度条
    第十周进度条
    构建之法阅读笔记(二)
    第九周学习进度
    团队名字
    站立会议09
    站立会议08
    站立会议07
  • 原文地址:https://www.cnblogs.com/WindSun/p/12142628.html
Copyright © 2011-2022 走看看