QJsonDocument::fromJson
static QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)
const QByteArray &json:要解析的JSON数据,以字节数组的形式传入。
QJsonParseError *error = nullptr:(可选参数)用于存储解析错误信息的指针,如果解析成功,则为nullptr。返回值:
QJsonDocument:解析后得到的JSON文档对象。
作用:
QJsonDocument::fromJson()函数用于将传入的JSON数据解析为一个QJsonDocument对象,以便后续对JSON数据进行读取、修改或生成等操作。
使用示例:
QByteArray jsonData = "{\"name\": \"John\", \"age\": 30}";
QJsonParseError jsonError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData, &jsonError);
if(jsonError.error != QJsonParseError::NoError) {
// 解析出错
qDebug() << "JSON解析错误:" << jsonError.errorString();
} else {
QJsonObject jsonObj = jsonDoc.object();
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
qDebug() << "Name: " << name;
qDebug() << "Age: " << age;
}
QJsonValue::toObject()
QJsonObject QJsonValue::toObject() const
QJsonValue::toObject() const函数是QJsonValue类的成员函数,它的参数为空
返回值是QJsonObject类型。
作用:
QJsonValue::toObject()函数用于将当前的QJsonValue对象转换为QJsonObject对象。
当前的QJsonValue对象必须是一个JSON对象类型,否则转换会失败。
QString jsonString = "{\"name\": \"John\", \"age\": 30}";
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
if(jsonDoc.isObject()) {
QJsonObject jsonObj = jsonDoc.object();
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
qDebug() << "Name: " << name;
qDebug() << "Age: " << age;
}
QJsonObject::contains(const QString &key)
bool QJsonObject::contains(const QString &key) const
函数的参数是一个const QString &类型的key,表示要检查的键名。
返回值是一个bool类型,表示该QJsonObject是否包含指定的键名。
作用:
QJsonObject::contains()函数用于检查QJsonObject是否包含指定的键名。
QString jsonString = "{\"name\": \"John\", \"age\": 30}";
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
if(jsonDoc.isObject()) {
QJsonObject jsonObj = jsonDoc.object();
if(jsonObj.contains("name")) {
QString name = jsonObj["name"].toString();
qDebug() << "Name: " << name;
}
}
QJsonObject::value
QJsonObject::value(const QString &key) const
参数是一个const QString &类型的key,表示要获取的键名。返回值是一个QJsonValue类型,表示该键对应的值
作用:
QJsonObject::value()函数用于获取指定键名对应的值。
通过传入一个键名,可以获取当前QJsonObject中该键对应的值,并将其封装为QJsonValue类型返回。返回的QJsonValue对象可以根据需要进行类型转换,例如使用toBool()、toInt()、toString()等函数获取具体的值。
QString jsonString = "{\"name\": \"John\", \"age\": 30}";
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonString.toUtf8());
if(jsonDoc.isObject()) {
QJsonObject jsonObj = jsonDoc.object();
QJsonValue nameValue = jsonObj.value("name");
if(nameValue.isString()) {
QString name = nameValue.toString();
qDebug() << "Name: " << name;
}
}
```