您的位置:首页 > 编程语言 > Qt开发

win7下使用mingw编译jsoncpp库并用Qt Creator

2016-01-22 12:44 1191 查看
最近需要在Qt MINGW 下解析json,查了一下jsoncpp这个库很合适,所以下载了这个第三方库。自己编译费了点劲,记录一下编译过程。

本人对编译不太懂,有什么不对的希望指出。

现在这个库已经移到github上,目前最新的版本是1.6.5 ,附上下载地址
https://github.com/open-source-parsers/jsoncpp/tree/1.6.5
下载后解压,我的解压到 E:\DOWNLOAD\jsoncpp-1.6.5

进去发现有个README.md 里面有介绍怎么使用

推荐的方式是将 两个头文件 和 一个cpp 文件加到你的工程中,

那么是哪两个头文件和cpp文件呢 下面帮助里写着用

python amalgamate.py

生成两个头文件和一个源文件 ,所以需要安装Python,这里不详说了

打开cmd(最好是以管理员身份运行),进到解压后的有README.md这一层,

接着执行python amalgamate.py



如图,生成了dist/json/json.h dist/json/json-forward.h dist/jsoncpp.cpp

应该就是这三个文件。

接下来测试这三个文件能不能用。

在Qt Creator里新建一个工程,test

然后在工程里新建一个文件夹json ,将刚生成的三个文件都复制到这个新建的文件夹下,

然后右键点击项目,添加现有文件

进到json文件夹,将这三个文件都选上,

然后 ,就变成这样 , 你的.pro也多了两句



从网上找个栗子 试试看。

#include <iostream>
#include "json/json.h"
using namespace std;
int main()
{
string strValue = "{\"key1\":\"value1\",\"array\":[{\"key2\":\"value2\"},{\"key2\":\"value3\"},{\"key2\":\"value4\"}]}";

Json::Reader reader;
Json::Value value;

if (reader.parse(strValue, value))
{
string out = value["key1"].asString();
cout << out << endl;
const Json::Value arrayObj = value["array"];
for (int i=0; i<arrayObj.size(); i++)
{
out = arrayObj[i]["key2"].asString();
cout << out;
if ( i != arrayObj.size()-1 )
cout << endl;
}
}
return 0;
}




好了,完成。

最后有点问题,因为需要mingw ,所以按照README.me 使用scons platform=mingw 生成了 一个 libjson_mingw_libmt.a文件

本想通过 在.pro 里引用INCLUDEPATH 和 LIBS方法使用jsoncpp , 却总不成功,最后又看README.md 用了推荐的方法。

如果我这个方法有问题,希望知道的朋友告诉我。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: