在Qt中,可以使用QJsonDocument来解析JSON格式的QString。下面是一个简单的示例:
QString jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// 将QString转换为QByteArray
QByteArray jsonData = jsonString.toUtf8();
// 解析JSON数据
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData, &error);
if (error.error != QJsonParseError::NoError) {
// 解析错误处理
qDebug() << "JSON解析错误:" << error.errorString();
return;
}
if (!jsonDoc.isObject()) {
// JSON不是一个对象
qDebug() << "JSON不是一个对象";
return;
}
QJsonObject jsonObj = jsonDoc.object();
// 获取键值对的值
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
QString city = jsonObj["city"].toString();
qDebug() << "Name:" << name;
qDebug() << "Age:" << age;
qDebug() << "City:" << city;
以上示例中,首先将QString转换为QByteArray,然后使用QJsonDocument::fromJson()
函数解析JSON数据。如果解析过程中出现错误,则通过error.errorString()
获取错误信息。最后,我们可以通过访问QJsonObject
对象的键来获取对应的值。
请注意,在使用之前,请确保已经包含了头文件 #include <QtJson> 或 #include <QJsonDocument>
和 #include <QDebug>
。
内容由零声教学AI助手提供,问题来源于学员提问