有时候界面输入的值,不想创建结构体,那么直接用QString类型传输,更便捷方便,速度更快
QJson是你选择的一种方式
组合:
cpp
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建JSON对象
QJsonObject jsonObject;
jsonObject["name"] = "John Doe";
jsonObject["age"] = 30;
// 创建JSON数组
QJsonArray jsonArray;
jsonArray.append("apple");
jsonArray.append("banana");
jsonArray.append("cherry");
// 将数组添加到对象中
jsonObject["fruits"] = jsonArray;
// 创建JSON文档
QJsonDocument jsonDoc(jsonObject);
// 将JSON文档转换为字符串
QString jsonString = jsonDoc.toJson(QJsonDocument::Indented);
qDebug() << "JSON Data:" << jsonString;
return a.exec();
}
解析:
cpp
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// JSON字符串
QString jsonString = R"(
{
"name": "John Doe",
"age": 30,
"fruits": ["apple", "banana", "cherry"]
})";
// 将JSON字符串解析为JSON文档
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
// 检查解析是否成功
if (jsonDoc.isNull() || !jsonDoc.isObject()) {
qWarning() << "Failed to parse JSON";
return -1;
}
// 获取JSON对象
QJsonObject jsonObject = jsonDoc.object();
// 访问数据
QString name = jsonObject["name"].toString();
int age = jsonObject["age"].toInt();
QJsonArray fruitsArray = jsonObject["fruits"].toArray();
qDebug() << "Name:" << name;
qDebug() << "Age:" << age;
qDebug() << "Fruits:";
for (const QJsonValue &value : fruitsArray) {
qDebug() << " -" << value.toString();
}
return a.exec();
}
AI生成,提供思路