如何解码json在qt



我想用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中不包含数组。Array在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();

相关内容

  • 没有找到相关文章

最新更新