qt json对象
时间: 2025-04-21 08:40:45 浏览: 18
### 创建和解析 JSON 对象
#### 创建 JSON 对象
在 Qt 中,`QJsonObject` 类提供了创建 JSON 对象的功能。下面是一个简单的示例,展示如何创建一个包含多个键值对的 JSON 对象。
```cpp
#include <QJsonObject>
#include <QString>
int main() {
// 创建 QJsonObject 实例并添加键值对
QJsonObject jsonObject;
jsonObject["name"] = "Alice";
jsonObject["age"] = 30;
// 将 QJsonObject 转换为 QJsonDocument 并序列化为字节数组
QJsonDocument jsonDoc(jsonObject);
QByteArray jsonData = jsonDoc.toJson();
qDebug() << QString(jsonData);
return 0;
}
```
这段代码展示了如何使用 `QJsonObject` 构建基本的对象,并将其转换成字符串形式以便于查看或存储[^1]。
#### 解析 JSON 对象
当接收到 JSON 字符串时,可以通过 `QJsonDocument::fromJson()` 方法将其反序列化为 `QJsonDocument` 对象,再从中提取出 `QJsonObject` 进行进一步操作。
```cpp
#include <QJsonDocument>
#include <QFile>
#include <QDebug>
void parse_json_file(const QString& filePath) {
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
QByteArray data = file.readAll();
file.close();
// 反序列化 JSON 文档
QJsonParseError error{};
QJsonDocument doc = QJsonDocument::fromJson(data, &error);
if (doc.isNull()) {
qDebug() << "Failed to load JSON:" << error.errorString();
return;
}
// 获取根级别的 JSON 对象
const QJsonObject rootObj = doc.object();
foreach (const QString& key, rootObj.keys()) {
qDebug() << key << ":" << rootObj[key];
}
}
```
此函数接收文件路径作为参数,打开指定位置上的 JSON 文件,读取其全部内容后尝试解析它。如果成功,则遍历顶层的所有成员项并打印出来[^5]。
通过上述方法可以在 Qt 应用程序里轻松地完成 JSON 的创建与解析工作。对于更复杂的场景比如嵌套结构或是数组类型的处理也可以借助 `QJsonArray` 和递归调用来实现[^4]。
阅读全文
相关推荐


















