QJsonDocument::fromJson()
是 Qt 框架中的一个静态函数,用于将 JSON 字符串解析为 QJsonDocument
对象。
该函数的原型如下:
static QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)
参数说明:
json
: 要解析的 JSON 数据,通常以QByteArray
形式传入。error
(可选): 用于存储解析过程中出现的错误信息。如果不需要获取错误信息,可以将其设置为nullptr
。
返回值:解析成功时返回一个有效的 QJsonDocument
对象,否则返回一个空对象。
以下是一个示例代码,演示如何使用 QJsonDocument::fromJson()
解析 JSON 字符串:
#include <QDebug>
#include <QJsonDocument>
#include <QJsonObject>
int main() {
QByteArray jsonString = R"(
{
"name": "John",
"age": 30,
"city": "New York"
}
)";
QJsonParseError parseError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString, &parseError);
if (parseError.error != QJsonParseError::NoError) {
qDebug() << "JSON parse error at offset" << parseError.offset
<< ":" << parseError.errorString();
return 1;
}
if (jsonDoc.isObject()) {
QJsonObject jsonObj = jsonDoc.object();
// 访问和处理 JsonObject 的成员数据...
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
QString city = jsonObj["city"].toString();
qDebug() << "Name:" << name;
qDebug() << "Age:" << age;
qDebug() << "City:" << city;
}
return 0;
}
在上述示例中,我们首先定义了一个 JSON 字符串 jsonString
,包含一个包含名称、年龄和城市的简单对象。然后,我们调用 QJsonDocument::fromJson()
函数将 JSON 字符串解析为 QJsonDocument
对象,并检查是否有解析错误。
如果解析成功,我们可以进一步处理 QJsonDocument
对象中的数据。在这个例子中,我们假设 JSON 数据是一个对象,并使用 toObject()
函数获取该对象。然后,我们可以通过访问 QJsonObject
的成员函数来获取和处理每个属性的值。
希望这个例子能够帮助你理解如何使用 QJsonDocument::fromJson()
函数解析 JSON 字符串!如有其他问题,请随时提问。
内容由零声教学AI助手提供,问题来源于学员提问