在 Qt 中,组装 JSON 字符串可以通过 QJsonDocument
、QJsonObject
和 QJsonArray
类来实现。以下是一个简单的示例,演示如何使用这些类来创建和序列化 JSON 对象。
示例代码
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建一个 JSON 对象
QJsonObject jsonObj;
// 添加一些键值对
jsonObj["name"] = "Alice";
jsonObj["age"] = 30;
// 创建一个 JSON 数组
QJsonArray hobbies;
hobbies.append("reading");
hobbies.append("hiking");
// 将数组添加到对象中
jsonObj["hobbies"] = hobbies;
// 可以嵌套其他对象
QJsonObject address;
address["street"] = "123 Main St";
address["city"] = "Wonderland";
jsonObj["address"] = address;
// 将 JSON 对象转换为字符串
QJsonDocument jsonDoc(jsonObj);
QString jsonString = jsonDoc.toJson(QJsonDocument::Compact); // Compact: 紧凑格式,不带空格
// 输出结果
qDebug() << "JSON String:" << jsonString;
return a.exec();
}
解释
包含头文件:
#include <QCoreApplication>
:用于创建基本的 Qt 应用程序。#include <QJsonDocument>
,#include <QJsonObject>
,#include <QJsonArray>
:用于处理 JSON 数据。
创建 JSON 对象:
- 使用
QJsonObject
创建一个新的 JSON 对象。 - 使用
jsonObj[key] = value;
的方式添加键值对。
- 使用
创建并添加数组:
- 使用
QJsonArray
创建一个新的数组,并用append()
方法向其中添加元素。 - 将数组作为一个属性添加到 JSON 对象中。
- 使用
嵌套对象:
- 可以将另一个
QJsonObject
嵌套到主对象中,从而构建更复杂的数据结构。
- 可以将另一个
转换为字符串:
- 使用
QJsonDocument::toJson()
方法将 JSON 文档转换为字符串格式。可以选择使用紧凑模式或美化模式(使用参数)。
- 使用
输出结果:
- 最后,通过
qDebug()
输出生成的 JSON 字符串。
- 最后,通过
输出示例
运行上述代码会输出如下格式的 JSON 字符串:
{"name":"Alice","age":30,"hobbies":["reading","hiking"],"address":{"street":"123 Main St","city":"Wonderland"}}
这个基本示例展示了如何在 Qt C++ 中构建和序列化简单的 JSON 数据。根据需求,你可以扩展这个结构以满足具体应用场景。
内容由零声教学AI助手提供,问题来源于学员提问