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 解压python

tar -zvxf scons-2.1.0.tar.gz

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

sudo python setup.py install

安装 JsonCPP

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

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

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

sudo scons platform=linux-gcc

还要如下两步操做:spa

  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>便可。.net

程序测试

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

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/ 下时重命名有关orm

g++ -o JsonTest JsonTest.cpp -ljsoncpp

问题

若是找不到路径的错误,须要编辑/etc/ld.so.conf文件,此文件记录了编译器编译时使用的动态库路径!那咱们把/usr/local/lib路径加入到文件末尾就能够了!get

相关文章
相关标签/搜索