下载jsoncpp后,按ReadMe文档的说法是要先安装的,但是安装比较麻烦。然而事实上,我们并不需要安装,就可以直接使用。
方法一:直接拷贝源文件。这个方法比较简单,但不推荐,因为不便于项目管理。
方法二:使用静态链接库
图1:
图2:
//测试DEMO
#include <iostream> #include <string> #include "json\json.h" int main(void) { std::string strValue="{\"key1\":\"value1\",\"array\":[{\"key2\":\"value2\"},{\"key2\":\"value3\"},{\"key2\":\"value4\"}]}"; Json::Reader reader;//json解析 Json::Value value;//表示一个json格式的对象 if(reader.parse(strValue,value))//解析出json放到json中区 { std::string out=value["key1"].asString(); std::cout<<out<<std::endl; const Json::Value arrayObj=value["array"];//迭代器 for (int i=0; i < arrayObj.size();i++) { out=arrayObj[i]["key2"].asString(); std::cout<<out; if(i!=arrayObj.size()-1) std::cout<<std::endl;; } } getchar(); return 0; }
再来一个源码
#include <iostream> #include <string> #include "json\json.h" int main(void) { //解析Json的方法 Json::Value root;//表示一个json格式的对象 Json::Value arrayObj; Json::Value item; for(int i=0;i<10;i++) { item["key"]=i; arrayObj.append(item); } root["key1"]="value1"; root["key2"]="value2"; root["array"]=arrayObj; std::string out=root.toStyledString(); std::cout<<out<<std::endl; getchar(); return 0; }
输出结果分别是:
DEMO1:
value1
value2
value3
value4
DEMO2:
{
"array" : [
{
"key" : 0
},
{
"key" : 1
},
{
"key" : 2
},
{
"key" : 3
},
{
"key" : 4
},
{
"key" : 5
},
{
"key" : 6
},
{
"key" : 7
},
{
"key" : 8
},
{
"key" : 9
}
],
"key1" : "value1",
"key2" : "value2"
}
源码下载:http://download.csdn.net/detail/opzoonzhuzhengke/3728120