C++要使用JSON来解析数据,一般采用jsoncpp.
网站:http://sourceforge.net/projects/jsoncpp/
我们如果要引用JSON的API有两种方法:
在这里我只试验了方法一:
方法一:
1.从git上下载jsoncpp:https://github.com/open-source-parsers/jsoncpp
2.解压下载好的文件:jsoncpp-src-0.5.0.tar.gz
3.使用vs打开jsoncpp-src-0.5.0.tar.gz\makefile\vs71目录下中的jsoncpp.sln,打开后会出现三个项目工程jsontest,lib_json,test_lib_json
4.在lib_json上右击->Properties-->Configuration Properties-->C/C++-->Code Generation,记录下右边的Runtime Library的属性内容(因为两个工程的属性要保持相同,否则会编译出错)
5.编译lib_json,显示编译成功以后,在jsoncpp_src-0.5.0\build\vs71\debug\lib_json目录下会生成一个json_vc71_libmtd.lib,将这个lib拷贝到需要使用jsoncpp的工程目录JsonTestApp下。
意外:
当我把头文件和lib_json.lib都正常引入了JsonTestApp工程下,并设置了相应的路径。但是debug运行失败:
json静态链接错误:msvcprtd.lib(MSVCP100D.dll)
原因:
因为之前在编译生成lib_json.lib时我们选择了Multi-threaded Debug (/MTd)的运行时库。所以我应该在JsonTestApp下配置如下:
工程(Project)->属性(Properties)->配置属性(Configuration Properties)->c/c++->代码生成(Code Generation)->运行时库(Use run-time library)->Multi-threaded Debug (/MTd)。
当然我们可以在生成lib时配置Multi-threaded Debug DLL (/MDd),然后再JsonTestApp中也同样配置如此。