安装
使用cmake安装
cd jsoncpp-1.8.0 mkdir -p build/debug cd build/debug cmake -DCMAKE_BUILD_TYPE=release -DBUILD_STATIC_LIBS=OFF -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=. -DCMAKE_INSTALL_INCLUDEDIR=include -G "Unix Makefiles" ../..
执行完后会生成一个Makefile,接着执行make && make install即可。
包含头文件的json文件夹位于/usr/local/include目录,库文件位于/usr/local/lib64目录。
最后打开/etc/profile,添加以下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib64
保存,再来一句: source /etc/profile,修改立即生效。
安装结束。
使用
sample code如下
#include <iostream>
#include <string>
#include "json/json.h"
int main()
{
Json::Value json_temp;
json_temp["name"] = Json::Value("zhangsan");
json_temp["age"] = Json::Value(18);
Json::Value root;
root["key_array"].append("array_string");
root["key_array"].append(1234);
root["key_string"] = Json::Value("value_string");
root["key_number"] = Json::Value(12345);
root["key_boolean"] = Json::Value(false);
root["key_double"] = Json::Value(12.345);
root["key_object"] = json_temp;
Json::FastWriter fast_writer;
std::cout << fast_writer.write(root);
Json::StyledWriter styled_writer;
std::cout << styled_writer.write(root);
std::string str_test = "{\"id\":1,\"name\":\"zhangsan\",\"school\":[\"Jinglin Senior High School\",\"Nan Jing University\"]}";
Json::Reader reader;
Json::Value value;
if(!reader.parse(str_test, value))
{
return 0;
}
std::string value_name = value["name"].asString();
std::cout << value_name << std::endl;
std::cout << value["name"] << std::endl;
if(!value["id"].isInt())
{
std::cout << "id is not int\n" << std::endl;
}
else
{
int value_id = value["id"].asInt();
std::cout << value_id << std::endl;
}
int size = value["school"].size();
std::cout << "school size is "<< size<< std::endl;
for (int i = 0;i < size;i++)
{
std::cout<< "school is "<<value["school"][i].asString() <<std::endl;
}
return 0;
}
将string 转化成 Json::value时主要用到了Json:Reader对象
来源:oschina
链接:https://my.oschina.net/u/4280361/blog/4546723