C++ 使用JsonCpp

来源:互联网 发布:javascript中map.get() 编辑:程序博客网 时间:2024/04/28 02:20

博客荒废了很久,想想程序员的表达能力还是要多加锻炼,而且好记性不如烂笔头。


在找到新BLOG之前,还是继续写在CSDN上吧。


怕自己忘记,所以Mark下来。


参考链接 : http://www.cnblogs.com/ppboy_dxh/archive/2011/03/03/1970290.html


最近做一个c/s,服务端用MFC socket通信,传输打算用Json,所以就用了JsonCpp


关于Json为何物,在Json的官网上已经有很详细的介绍了。 Json官网:  http://www.json.org/  


C++的Json库有很多,我也不知道用哪个,一搜用Jsoncpp者居多,而且反应良好,想着自己要是碰到问题也有好多大牛帮忙解答一下。



理清一下思路,是如何一步一步把Jsoncpp添加到项目当中的。


1、下载Jsoncpp

先去Json官网把Jsoncpp下载下来,http://sourceforge.net/projects/jsoncpp/


2、编译工程

下载后解压,版本可能会不同,笔者下载时为 0.5.0

进入目录 jsoncpp-src-0.5.0\makefiles\vs71\ 

        运行 jsoncpp.sln ,使用VS编译,编译之前要先将工程 lib_json 改为/MTd模式(如果默认不是的话)  

右键 lib_json -->属性  -->  配置属性 -->  C/C++  --> 代码生成  -->运行库 , 选择 “多线程调试(/MTd)”


3、把json库添加至 测试工程中(以下简称Test.sln)

json工程编译后,会在 jsoncpp-src-0.5.0\build\vs71\debug\lib_json\ 中生成 json_vc71_libmtd.lib 拷贝至Test.sln目录下。(json_vc71_libmtd.lib 这个名字版本不同可能会有所不同,所以网上搜集的资料会看到不一样的名字) 

同时将头文件也添加至工程中:把 jsoncpp-src-0.5.0\include\ 文件夹拷贝至Test.sln中。

        注:有些人不知道拷贝的目录指的是哪里,可以在Test.sln中右键Test --> 在文件资源管理器中打开文件夹 ,这里显示的位置就是要拷贝至的目录。

拷贝完.lib和.h后,把.h添加至项目中: 在Test.sln 的Test --->右键 “头文件”  -->添加现有项目,  把include所有的头文件都选上,点确定。


  右键Test  -->属性 --> 配置属性 -->  链接器 --> 输入 -->  附加依赖项 ,输入 json_vc71_libmtd.lib

把Test.sln想改为/MTd模式


注:如果使用的是MFC,会报错让你使用/md模式,因为MFC默认/md,而.lib用的是/mtd,要一致,还要修改  项目-->配置属性-->常规--> MFC的使用,修改为“在静态库中使用MFC”

此致,Jsoncpp已经附加进项目中了,下面贴出测试代码:

#pragma comment(lib, "json_vc71_libmtd.lib")#include <fstream>#include "json/json.h"int main(){    person["name"] = "hello world";    person["jsonlib"] = "jsoncpp";    root.append(person);    std::string json_file = writer.write(root);    ofstream ofs;    ofs.open("test.json");    assert(ofs.is_open());    ofs<<json_file;         return 1;}

然后编译运行,看一下目录是不是多了个text.json,打开看内容是不是如设置的一样?




恭喜你成功把Jsoncpp添加进来!



最后要说明一点,

json_vc71_libmtd.lib 各个版本可能名字会不一样,代码可不能全靠复制粘贴哟

0 0