使用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对象
