小白C++使用JSONCPP(Visual Studio)

一、简介

1、JSON是key-value形式存储传输数据,与XML类似,但数据量较小一些;

2、JSONCPP开源,开源用来解析JSON,C++里最常用,资料多,新手友好;

二、小白使用过程

1314054-0fb9c2824373576a.png
C++使用JSONCPP过程

三、编译JSONCPP源文件

1314054-42a1e255a536fab9.png
编译文件

1、下载地址:https://sourceforge.net/projects/jsoncpp/,这个版本比较老,但照样可以用,最新版本:https://github.com/open-source-parsers/jsoncpp

2、解压文件,jsoncpp-src-0.5.0/makefiles/vs71目录里找到jsoncpp.sln,用VS打开

3、在属性界面选择是Debug模式,选择多线程调试(MTD),也可以选择其他,但要与项目一致

1314054-39d63603a6d80575.png
设置属性

4、配置好了之后进行编译生成,debug路径(xxx\jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\build\vs71\debug\lib_json)下生成静态链接库json_vc71_libmtd.lib 。如果是release版本则类似。

四、C++设置属性

1314054-099df265e4581128.png
C++配置属性

1、新建win32控制台项目

2、将jsoncpp-src-0.5.0\include\json整个文件夹拷贝到项目源文件所在目录中

3、将jsoncpp-src-0.5.0\jsoncpp-src-0.5.0\build\vs71\debug\lib_json下生成静态链接库json_vc71_libmtd.lib拷贝到项目源文件所在目录中

1314054-5e93a06982dd21a9.png
拷贝到目录中

4、在项目属性中添加包含目录:将..\json添加到包含目录;由于json_vc71_libmtd.lib库本身就在项目文件目录中,添加的话只能使用..\,所以可以不用添加库目录

1314054-a222301975b703a9.png
包含目录

5、添加附加依赖项

1314054-ca95cfa2ef436b0d.png
添加库为附加依赖项

五、测试代码

#include "stdafx.h"

#include "json/json.h"

#includeusing namespace std;

int main(){

const char* str ="{\"praenomen\":\"Gaius\",\"nomen\":\"Julius\",\"cognomen\":\"Caezar\",""\"born\":-100,\"died\":-44}";

Json::Reader reader;

Json::Value root;

if (reader.parse(str, root)){

string praenomen = root["praenomen"].asString();

string nomen = root["nomen"].asString();

string cognomen = root["cognomen"].asString();

int born = root["born"].asInt();

int died = root["died"].asInt();

cout << praenomen + " " + nomen + " " + cognomen<< " was born in year " << born<< ", died in year " << died << endl;

}

system("pause");

return 0;

}

运行中可能报错,需要将运行库改为与之前编译lib一致的模式,这里使用MTD

1314054-902b20c197ac5f28.png
配置、平台以及运行库与之前的一致

六、杂

1、之前在网上找编译好的jsoncpp链接库,发现很难找到,并且找到了也很可能不适用;

2、将json文件夹以及生成的静态库放到项目目录中,这样分享代码的时候会方便,否则在其他电脑上无法运行,之后使用相对目录添加包含目录、连接库之类的东西。使用相对路径教程:https://jingyan.baidu.com/article/5225f26b093151e6fa09083f.html

3、参考:

C++解析json文件-VS2010中配置Jsoncpp:http://blog.csdn.net/kekong0713/article/details/52781482

C++ 解析Json——jsoncpp:http://www.cppblog.com/wanghaiguang/archive/2013/12/26/205020.html

Jsoncpp的使用:

https://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值