我想用 qt 解码以下 json:
{
"user": {
"name": "string"
}
}
我试着用这段代码来做,但不起作用:
QJsonDocument jsonResponse = QJsonDocument::fromJson(result.toUtf8());
QJsonObject jsonObject = jsonResponse.object();
QJsonArray jsonArray = jsonObject["user"].toArray();
foreach (const QJsonValue & value, jsonArray)
{
QJsonObject obj = value.toObject();
url = obj["name"].toString();
}
最佳答案
这是罪魁祸首:
QJsonArray jsonArray = jsonObject["user"].toArray();
您正试图在没有任何 isArray()
检查的情况下将对象转换为数组。也就是说,您的 json 中不包含数组。数组在 json 世界中表示 [...]
。
您应该使用 toObject()
或更改您的输入 json。
如果不更改 json 文件,您将这样写:
QJsonDocument jsonResponse = QJsonDocument::fromJson(result.toUtf8());
QJsonObject jsonObject = jsonResponse.object();
QJsonObject userJsonObject = jsonObject.value("user").toObject();
qDebug() << userJsonObject.value("name").toString();
关于c++ - 如何在qt中解码json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24332719/