jsoncpp-src-0.5.0编译
源码下载:
https://github.com/janelia-flyem/S-Cpp/tree/master/json/jsoncpp-src-0.5.0
或者
https://sourceforge.net/projects/jsoncpp/
Linux编译:
一.编译环境安装Python二.Scons安装步骤:
1. 解压:tar -zxvf scons-2.0.1.tar.gz
2. 设定环境变量:
# export MYSCONS=解压的路径
# export SCONS_LIB_DIR=$MYSCONS/engine三.Json编译步骤:
假设jsoncpp目录在/root/software/jsoncpp-src-0.5.0/
# cd jsoncpp-src-0.5.0
# python $MYSCONS/script/scons platform=linux-gcc在jsoncpp-src-0.5.0/libs/linux-gcc目录下可以看到
libjson_linux-gcc-4.4.4_libmt.a
libjson_linux-gcc-4.4.4_libmt.so直接把 libjson_linux-gcc-4.4.4_libmt.so 改名为 libjson.so 即可
windows编译
1. 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz
2. 利用VS2013(也可以用其他版本VS编辑器打开)打开jsoncpp-src-0.5.0\makefiles\vs71目录下的jsoncpp.sln,会出现三个Project:jsontest, lib_json, test_lib_json
3. 检查设置:在lib_json上右击-->Properties-->Configuration Properties-->C/C++-->Code Generation,检查设置是否为RunTime Library 为MTD
4. 切换配置中需要生成的平台,win32还是x64,debug版本还是release版本
调用
编译后导入lib和include文件即可
#include "json.h"
//解析
response =
{"apiresponse": {"status_code": 200,"status_text": "Success","result": [{"item": {"rtc_num": "DF","rtc_description": "V3 PORTABLES","site_num": "1"}},{"item": {"rtc_num": "00","rtc_description": "RTC00 ON CDC","site_num": "1"}},{"item": {"rtc_num": "DE","rtc_description": "Test on Lab","site_num": "1"}}]}
}Json::Reader reader;Json::Value value;if (reader.parse(response, value)){int status_code = value["apiresponse"]["status_code"].asInt();std::string status_text = value["apiresponse"]["status_text"].asString();if(status_code == 200){int size = value["apiresponse"]["result"].size();//解析数组for(int i = 0;i<size;++i){stCEMControllerInfo stController;stController.id = value["apiresponse"]["result"][i]["item"]["rtc_num"].asString();stController.description = value["apiresponse"]["result"][i]["item"]["rtc_description"].asString();stController.site_num = value["apiresponse"]["result"][i]["item"]["site_num"].asString();//listController.push_back(stController);}}else{//TVT_LOG_ERROR("response Err = " << status_code <<", details="<< status_text.c_str());return false;}}