天天看点

Ubuntu14.04 jsoncpp搭建

install scons:

apt-get install scons

download jsoncpp zip:

https://github.com/open-source-parsers/jsoncpp/tree/master/test/data

unzip jsoncpp-master.zip

cd jsoncpp-master

scons platform=linux-gcc

将jsoncpp编译,在解压目录jsoncpp-src-0.5.0/libs/linux-gcc-3.4.6下可以看到生成了两个文件:

    libjson_linux-gcc-4.6.1_libmt.a

    libjson_linux-gcc-4.6.1_libmt.so

    把.a文件拷贝到/usr/local/lib 目录下,为了方便编译给它改个名字libjsonlib.a

:

cp ../jsoncpp-master/libs/linux-gcc-4.8/libjson_linux-gcc-4.8_libmt.a /usr/local/lib/libjsonlib.a

将jsoncpp目录下的头文件件拷到自己的工程里就可以使用了:

cp -r ../jsoncpp-master/include/json/ ./

注意在编译里指定动态链接库的地址。 -ljsonlib :

g++ test.cpp -o test -ljsonlib

./test

基本使用示例

int   mark = 1;

stringpwd("123456");

//json的字符串格式

string test="{\"id\":1,\"name\":\"kurama\"}";

//reader用于将字符串格式转化为json

Json::Reader  reader;

//定义json变量

Json::Value   value;

if(reader.parse(test,value))//字符串转json

{

if(!value["id"].isNull())

{

cout<<value["id"].asInt()<<endl;

//asString()用于转化为string,直接输出是带双引号的

cout<<value["name"].asString()<<endl;

}

}

Json::Value  json;

//初始化json

json["mark"] = Json::Value(mark);

json["pass"] = Json::Value(pwd);

cout<<json["mark"].asInt()<<json["pass"].asString()<<endl;

string   s;

//json转字符串

s = json.toStyledString();

cout<<s<<endl;

Json::Value  js;

reader.parse(s,js);

cout<<js["pass"].asString()<<endl;

//转化为不带格式的字符串

Json::FastWriter writer; 

std::string out = writer.write(js);

继续阅读