VS2010中使用JSONCPP方法
来源:互联网 发布:win下制作mac安装u盘 编辑:程序博客网 时间:2024/06/04 19:08
下载jsoncpp后,按ReadMe文档的说法是要先安装的,但是安装比较麻烦。然而事实上,我们并不需要安装,就可以直接使用。
方法一:直接拷贝源文件。这个方法比较简单,但不推荐,因为不便于项目管理。
- VS2010里新建一个空的控制台程序(用作测试jsoncpp是否可用),名为: TestJSON
- 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz
- 将 jsoncpp-src-0.5.0\include 目录下的json文件夹拷贝至 TestJSON 工程目录下
- 将 jsoncpp-src-0.5.0\src\lib_json 目录下的所有.h, .cpp 文件全部拷贝至 TestJSON 工程目录下
- 在VS201里引入工程目录下刚刚从 jsoncpp-src-0.5.0 导入的文件,如图1
- 在VS2010里新建main.cpp来测试jsoncpp是否可用。代码见文章末尾main.cpp
方法二:使用静态链接库
- VS2010里新建一个空的控制台程序(用作测试jsoncpp是否可用),名为: TestJSON
- 解压下载好的文件:jsoncpp-src-0.5.0.tar.gz
- 利用VS2010打开jsoncpp-src-0.5.0\makefiles\vs71目录下的jsoncpp.sln,会出现三个Project:jsontest, lib_json, test_lib_json
- 在lib_json上 右击-->Properties-->Configuration Properties-->C/C++-->Code Generation,注意右侧的Runtime Library的内容,如图2,看完箭头所指的东西就可以点确定,关掉属性页。
- 编译lib_json,显示编译成功后,在jsoncpp-src-0.5.0\build\vs71\debug\lib_json目录下会生成一个json_vc71_libmtd.lib,将这个lib拷贝至TestJSON工程目录下。
- 将jsoncpp-src-0.5.0\include\json目录下的所有.h文件拷贝至TestJSON工程目录下,并在工程Header Files引入.
- 将方法一里的main.cpp添加到工程中,并在工程名上 右击-->Properties-->Configuration Properties-->C/C++-->Code Generation, 将Runtime Library改成图2箭头所示内容。
- 在工程名上 右击-->Properties-->Configuration Properties-->Linker-->Input, 在Additional Dependencies里填写json_vc71_libmtd.lib,然后确定,编译就行了。
图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
- VS2010中使用JSONCPP方法
- VS2010中使用JSONCPP方法
- VS2010中使用JSONCPP方法
- VS2008中使用JSONCPP方法小结
- VS2008中使用JSONCPP方法小结
- VS2008中使用JSONCPP方法小结
- VS2008中使用JSONCPP方法小结
- VS2008中使用JSONCPP方法小结
- vs2010中编译配置jsoncpp
- jsoncpp编译方法 和 vs2010中导入第三方库的方法
- jsoncpp在VS2010下的配置方法
- coco2dx中使用jsoncpp
- C++中使用JsonCpp
- C++解析json文件-VS2010中配置Jsoncpp
- jsoncpp中获取key的方法
- VS2008中使用JSONCPP方法修改版本能运行显示结果
- QtCreator 中使用jsoncpp解析json
- Linux中jsoncpp的安装和使用
- Adobe photoshop工具箱工具名称中英文对照
- 删除win7中的隧道适配器
- cassandra1.2的新功能
- Apache启动时无法加载php5apache2_2.dll
- 解释器模式(Interpreter)
- VS2010中使用JSONCPP方法
- 教你刷各大android手机应用市场下载排名
- iPhone: Detecting user inactivity/idle time since last screen touch
- Poj 1125 Stockbroker Grapevine
- 【AndroidManifest.xml详解】Manifest属性之sharedUserId、sharedUserLabel
- java中一个类想调用另一个类的变量
- [PowerDesign]数据库设计:需求模型(RQM)的简单介绍与案例教程(二)
- 威盾解密工具源代码
- 俄罗斯降下陨石雨 造成400多人受伤(图)