下面是一个使用 QJson 的简单示例,展示了如何创建、解析和操作 JSON 数据。这个示例假设你已经安装了 Qt 并且有一个基本的 Qt 项目结构。
示例代码
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QFile>
#include <QDebug>
void createJson()
{
// 创建一个 JSON 对象
QJsonObject jsonObj;
jsonObj["name"] = "Alice";
jsonObj["age"] = 30;
// 创建一个 JSON 数组
QJsonArray hobbies;
hobbies.append("reading");
hobbies.append("gaming");
hobbies.append("hiking");
jsonObj["hobbies"] = hobbies;
// 将 JSON 对象转换为 QJsonDocument
QJsonDocument doc(jsonObj);
// 将 JSON 文档写入文件
QFile file("output.json");
if (!file.open(QIODevice::WriteOnly)) {
qWarning() << "Could not open file for writing.";
return;
}
file.write(doc.toJson());
file.close();
}
void readJson()
{
// 从文件中读取 JSON 数据
QFile file("output.json");
if (!file.open(QIODevice::ReadOnly)) {
qWarning() << "Could not open file for reading.";
return;
}
QByteArray data = file.readAll();
// 解析 JSON 数据
QJsonDocument doc(QJsonDocument::fromJson(data));
if (doc.isNull()) {
qWarning() << "Failed to create JSON doc.";
return;
}
if (!doc.isObject()) {
qWarning() << "JSON is not an object.";
return;
}
// 获取 JSON 对象并访问数据
QJsonObject jsonObj = doc.object();
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
qDebug() << "Name:" << name;
qDebug() << "Age:" << age;
// 获取爱好数组并输出内容
QJsonArray hobbies = jsonObj["hobbies"].toArray();
qDebug() << "Hobbies:";
for (const auto &hobby : hobbies) {
qDebug() << hobby.toString();
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
createJson(); // 创建并写入 JSON 文件
readJson(); // 从文件读取并解析 JSON
return a.exec();
}
使用说明
- 创建项目:在 Qt Creator 中新建一个 C++ 项目。
- 添加代码:将上述代码粘贴到
main.cpp
中,并确保包含所需的头文件。 - 运行程序:编译并运行程序,将会在项目目录下生成一个名为
output.json
的文件,其中包含生成的 JSON 数据。 - 查看结果:程序还会输出解析后的数据到控制台,包括姓名、年龄和爱好列表。
生成的 output.json 文件示例:
{
"name": "Alice",
"age": 30,
"hobbies": [
"reading",
"gaming",
"hiking"
]
}
这样,你就可以看到如何使用 QJson 来创建和解析简单的 JSON 数据了!
内容由零声教学AI助手提供,问题来源于学员提问