C++/MFC使用JSONCPP解析JSON字符串

时间:2024-04-09 16:04:51

第一步:首先下载jsoncpp源代码文件,代码可以从github下载 https://sourceforge.net/projects/jsoncpp/?source=typ_redirect 下载源码后解压后的目录如下:

C++/MFC使用JSONCPP解析JSON字符串

再依次打开\makefiles\vs71,双击jsoncpp.sln启动visual studio,解决方案如下,有三个项目,我们只需要编译lib_json即可。

C++/MFC使用JSONCPP解析JSON字符串


第二步:这一步很重要,网上绝大多数这一步都没有做详细介绍,本人也是各种尝试后才知道是怎么回事,下面具体介绍

① 右键项目→属性→C/C++→输出文件→汇编程序输出→无列表。这主要是为了防止在自己项目编译中出现 e:\Source\VC\?\json\jsoncpp-src-0.6.0-rc2\src\lib_json\json_value.cpp : fatal error C1083: 无法打开编译器生成的文件:“../../build/vs71/release/lib_json\json_value.asm”: No such file or directory  错误,大家可以尝试一下。

②右键项目→属性→代码生成→运行库,这里可以根据自己项目的实际情况修改jsoncpp链接库的属性,然后进行编译。


第三步:准备工作完成,现在集成到自己项目中,首先将编译出来的json_vc71_libmtd.lib链接库和include文件夹复制到自己项目中,在项目属性中包含include文件夹,同时链接库包含json_vc71_libmtd.lib库即可。


第四步:测试,mfc对话框中测试代码如下:

CString str = _T("{\"type\":\"NEW_CHECK_REQUEST\"}");
Json::Reader reader;
Json::Value root;
CString temp;
USES_CONVERSION;
char* cJson = T2A(str.GetBuffer(0));
str.ReleaseBuffer();
if (reader.parse(cJson, root))
temp = root["type"].asCString();
AfxMessageBox(temp);

结果截图:

C++/MFC使用JSONCPP解析JSON字符串

大功告成!


整个MFC项目包括JSONCPP源代码文件可以从这里下载:http://download.csdn.net/download/youyicc/10112622