在
http://sourceforge.net/projects/jsoncpp 下载jsoncpp,解压后用visual studio(笔者是vs2010)打开 jsoncpp-src-0.5.0\makefiles\vs71\lib_json.vcproj,转换成vs2010的工程文件。
在lib_json的项目属性中设置如下:
如上图所示,要把“运行库”设置为“多线程DLL(/MD)”
如上图所示,要把“全程序优化”设置为“无全程序优化”。
再编译生成release版本的json_vc71_libmt.lib,可以把名字改成其他,如json.lib。然后就可以在其他MFC/VC工程中使用了。例如,新建win32 console项目,键入代码如下:
- #include "stdafx.h"
- #include "json/json.h"
- #include "string"
- using namespace std;
-
- #pragma comment(lib,"libs/json.lib")
-
- int _tmain(int argc, _TCHAR* argv[])
- {
-
- Json::Reader reader;
- Json::Value root;
-
- string doc("{\"name\":\"bigboy\",\"gender\":\"male\"}");
- if(!reader.parse(doc,root,false)){
-
- printf("failed to parse!\n");
- return -1;
- }
-
- string name=root["name"].asString();
- string gender=root["gender"].asString();
- cout<<"name:"<<name<<endl;
- cout<<"gender:"<<gender<<endl;
-
- system("pause");
- return 0;
- }
-------------------------------------------------------------------------------------------------------------
将JSONCPP以静态库方式导入,需要注意的是,项目中的代码生成中的运行库,和JSONCPP的静态库项目的代码生成的运行库要一致,否则将报如下错误
- afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
图1是JSONCPP的lib_json项目的
图2是自己的项目的运行库
导入所有include的.h文件:做法是将JSONCPP的include文件夹中文件拷贝到自己的项目文件夹中,通过解决方案资源管理器的显示所有文件功能,想这些文件显示出来并通过右键将这些文件包含到项目中。
在使用json中定义的类的时候,只需要包含json.h头文件即可。而在json中定义的变量时,如果一直无法识别类型,可考虑是否是缺少名字空间,Json是所有JSON类的名字空间。