I'm using Qt5. I am trying to obtain values from a json object. Here is what the json object looks like that I am trying to get data from:

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

How can I create three arrays that contain properties[x].ID, properties[x].PropertyName, and properties[x].key in Qt?

Edit:

使用QScriptEngine,我try 了这个:

QString data = (QString)reply->readAll();

QScriptEngine engine;

QScriptValue result = engine.evaluate(data);

qDebug() << result.toString();

Debug说"SyntaxError:解析错误"

推荐答案

我想出来了:

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相关问答推荐

JOLT拉平数组

Jolt将键和值转换为单独的数组集

如何形成正确的JQ表达式以从JSON文件中获得准确的输出数据?

为什么JQ筛选器不将原始输入打印为$var|.';文档?

与错误相关的未定义&Quot;不是有效的JSON

在解码的JSON哈希中搜索数组元素

Terraform迭代JSON文件以获取键值对

VBA json按特定属性名称提取所有数据

Azure数据工厂-WEB活动输出赢得';t返回JSON

简单条形图和有序分类中条形图的 colored颜色 梯度

如何在不使用 Newtonsoft.JSON 的情况下序列化/反序列化

在 json 嵌入的 YAML 文件中 - 使用 Python 仅替换 json 值

Flask 请求和 application/json 内容类型

如何使用 json.net 将数据表转换为 json 字符串?

如何使用 Jackson 定义可选的 json 字段

字符串的 Gson 数组到 JsonArray

将 Objective-C 对象序列化和反序列化为 JSON

如何在 Java 中将 YAML 转换为 JSON?

ASP.NET Web API JSON 输出中没有时间的日期

无法将 System.String 转换或转换为 Class 对象