qt解析json(使用第三方库)

http://blog.sina.com.cn/s/blog_6d0730c701012arj.html


我使用的是Qjson库 是qt指定用的开源库 不错哈
1.先编译库,生成.a文件(编译用)和.dll(运行用)
2.将.a文件放到qt根目录的lib目录下,将库里的include目录拷贝到qt根目录的QtJson(新建的)目录下面
3.在你的程序的pro文件中指定
INCLUDEPATH += . PATH(qt根目录)/include/QtJson
LIBS += -L PATH(qt根目录)/lib -lqjson
4.在你的程序中加上头文件
#include <parser.h>
#include <serializer.h>
5.创建类对象
QJson::Parser parser;
6.将QVariantList转换为Json数据
QVariantList list;
QJson::Serializer serializer;
QByteArray array = serializer.serialize(list);
7.实例 #include <QApplication> #include <QVariant> #include <QDebug> #include <parser.h> int main(int argc, char *argv[]) { 


QApplication app(argc, argv); QJson::Parser parser; bool ok; QString json = "{"encoding":"UTF-8", "plug-ins":["python","c+


+","ruby"], "indent":{ "length":3, "use_space":true }}"; QVariantMap result = parser.parse(json.toAscii(), &ok).toMap(); if (!ok) { 


qDebug("An error occurred during parsing"); return 0; } qDebug() << "encoding:" << result["encoding"].toString(); qDebug() << 


"plugins:"; foreach (QVariant plugin, result["plug-ins"].toList()) qDebug() << "t-" << plugin.toString(); QVariantMap nestedMap = 


result["indent"].toMap(); qDebug() << "length:" << nestedMap["length"].toInt(); qDebug() << "use_space:" << nestedMap


["use_space"].toBool(); return app.exec(); }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt4中,可以使用第三方库QJson解析JSON数据。下面是一个简单的示例代码: ```cpp #include <QCoreApplication> #include <QJsonDocument> #include <QJsonObject> #include <QJsonArray> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QString jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"cars\":[\"Ford\",\"BMW\",\"Fiat\"]}"; // 解析JSON数据 QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8()); if (!jsonDoc.isNull()) { if (jsonDoc.isObject()) { QJsonObject jsonObj = jsonDoc.object(); // 获取name字段的值 QString name = jsonObj["name"].toString(); qDebug() << "Name: " << name; // 获取age字段的值 int age = jsonObj["age"].toInt(); qDebug() << "Age: " << age; // 获取city字段的值 QString city = jsonObj["city"].toString(); qDebug() << "City: " << city; // 获取cars数组的值 QJsonArray carsArray = jsonObj["cars"].toArray(); QStringList carsList; foreach (const QJsonValue &value, carsArray) { carsList.append(value.toString()); } qDebug() << "Cars: " << carsList; } } return a.exec(); } ``` 在上面的示例中,我们使用QJsonDocument::fromJson()函数将JSON字符串转换为QJsonDocument对象。然后,我们可以使用QJsonObject和QJsonArray来访问和解析JSON对象和数组中的数据。通过使用相应的字段名称,我们可以获取JSON中的值,并将其转换为适当的类型。 请注意,Qt4的QJson模块不是内置的,需要单独安装。你可以从Qt官方网站或第三方库管理工具中获取QJson模块,并将其添加到你的项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值