json - Qt 使用 QJsonDocument、QJsonObject、QJsonArray 解析 JSON

标签 json qt

我正在使用 Qt5。我正在尝试从 json 对象获取值。这是我试图从中获取数据的 json 对象的样子:

{
    "success": true,
    "properties": [
        {
            "ID": 1001,
            "PropertyName": "McDonalds",
            "key": "00112233445566778899aabbccddeeff"
        },
        {
            "ID": 1002,
            "PropertyName": "Burger King",
            "key": "10112233445566778899aabbccddeeff"
        },
        {
            "ID": 1003,
            "PropertyName": "Taco Bell",
            "key": "20112233445566778899aabbccddeeff"
        }
    ]
}

如何创建三个包含 properties[x].ID 的数组, properties[x].PropertyName , 和 properties[x].key在 Qt 中?

编辑:

使用 QScriptEngine我试过这个:
QString data = (QString)reply->readAll();

QScriptEngine engine;

QScriptValue result = engine.evaluate(data);

qDebug() << result.toString();

调试说“语法错误:解析错误”

最佳答案

我想到了:

QStringList propertyNames;
QStringList propertyKeys;
QString strReply = (QString)reply->readAll();
QJsonDocument jsonResponse = QJsonDocument::fromJson(strReply.toUtf8());
QJsonObject jsonObject = jsonResponse.object();
QJsonArray jsonArray = jsonObject["properties"].toArray();

foreach (const QJsonValue & value, jsonArray) {
    QJsonObject obj = value.toObject();
    propertyNames.append(obj["PropertyName"].toString());
    propertyKeys.append(obj["key"].toString());
}

关于json - Qt 使用 QJsonDocument、QJsonObject、QJsonArray 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822211/

相关文章:

c++ - 使用经典终端和gcc/g++编译QT Creator项目

qt - QML应用程序和安全性-有吗?

c++ - 使用 OpenCV 分析天空图像

通过 GSON 反序列化 JSON 时出现 java.lang.IllegalArgumentException

java - 将json数据从android发送到php linux服务器

c++ - QtMainWindow 初始化事件

qt - 如何在 QFileDialog::getExistingDirectory 中指定文件过滤器?

python - 在 Python 中从 JSON 中提取值

json - 如何将多个 JSON 文件拉入 Node.js 上的 SWIG 中?

json - JOLT 转换将元素添加到数组