QJson应用

在使用前,需要配置使用环境。

1、在本地编译出QJson的dll(见前一篇文章)。

2、在.pro文件中加入如下代码:

INCLUDEPATH += d:/Qt/2010.05/lib/qjson/include

LIBS += -Ld:/Qt/2010.05/lib/qjson/lib -lqjson

环境就配好了。

 

接下来是在代码中使用定义的类,简而言之,几个步骤:

1、定义Parser:

QJson::Parser*parser=newQJson::Parser();

2、转化字符串query为Qvariant

bool ok;//返回结果是否转化成功

QString query = "XXX";//待转化字符串

QVariant result = parser->parse(query.toAscii(),&ok);

3、获取值,如果是数组(用“[]”括起来的),则用toList转化到QVariantList或QList<QVariant>,如果是类(用"{}"括起来的),则用toMap()转化到QVariantMap或QMap<QString,QVariant>,基本变量值可以用toString(), toInt()等方法获得。此外,在头文件中,还见到了Hash的定义:typedef QHash<QString,QVariant> QVariantHash;以后再慢慢尝试。

有了上面的方法,就可以分析Json中的数据了。还算挺好用的。

-------------------------------------------------------------------

附上两段测试代码

*************************************************

QString query = "{\"dxydata\":{\"class\":\"Data\",\"id\":null,\"sex\":\"male\",\"name\":\"dxy\",\"age\":13},\"test\":\"123\"}";
QVariant result = parser->parse(query.toAscii(), &ok);
QVariantMap mymap = result.toMap();
QVariantMap datamap = mymap["dxydata"].toMap();
qDebug() << datamap["class"].toString() << datamap["sex"].toString();
qDebug() << mymap["test"].toInt();


-------------------------------------------------------------------

QString query = "[{\"rid\":\"102432\", \"pid\":\"1000\", \"username\":\"dxy\"}, {\"rid\":\"000\", \"pid\":\"10200\", \"username\":\"dxy2\"}]";
QVariantList mylist = result.toList();
foreach (QVariant plugin, mylist) {
    QVariantMap mymap = plugin.toMap();
    qDebug() << "[" << mymap["rid"].toString() << mymap["pid"].toString() << mymap["username"].toString() << "]";
}


08-14
QJson 是一个用于 Qt 的 C++ 库,用于解析和生成 JSON 数据。它提供了一种简单的方法来处理 JSON 格式的数据,使得开发者能够更容易地在他们的应用程序中集成 JSON 支持。 要使用 QJson 库,首先需要确保它已经被正确安装在开发环境中。对于想要从源代码构建 QJson 的用户,可以参考类似如下的步骤: ```bash mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=_preferred_path_ .. make make install /sbin/ldconfig # 如果有必要的话 ``` 这里,`_preferred_path_` 应该被替换为你希望安装 QJson 库的目标路径。完成这些步骤后,QJson 将会被编译并安装到指定的位置,之后就可以在项目中包含 QJson 头文件,并链接到生成的库文件以开始使用其功能[^2]。 如果你正在寻找 QJson 的使用指南或者下载链接,通常可以从它的官方仓库或者官方网站获取最新版本的文档和源代码。此外,许多开源社区和论坛也会提供关于如何使用 QJson 的教程和示例代码。 对于具体的使用案例,比如读取一个 JSON 文件并从中提取数据,可以采用如下方式(注意,下面的代码示例是基于 QJson 的旧版本 API 编写的,新版本可能有所不同): ```cpp QByteArray content = QByteArray::fromBase64(f.readAll()); f.close(); QJson::Parser parser; bool ok; QVariant temp = parser.parse(content, &ok); QVariantMap jsonMap = temp.toMap(); foreach (QVariant var, jsonMap["data"].toList()) { QVariantMap varMap = var.toMap(); STask task; task.id = varMap["id"].toString(); task.name = varMap["name"].toString(); } ``` 这段代码展示了如何读取一个经过 Base64 编码的 JSON 文件,解析其内容,并遍历其中的特定键值对来创建 `STask` 类型的对象。需要注意的是,在实际应用中,你需要根据实际情况调整代码以适应你的项目需求和 QJson 版本的变化。 如果你需要最新的 QJson 库,建议直接访问项目的官方网站或其在 GitHub 上的仓库页面进行下载。同时,也可以查阅相关的开发文档和社区讨论来获得更多的帮助和支持。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值