Подтвердить что ты не робот

Qt разбор JSON с использованием QJsonDocument, QJsonObject, QJsonArray

Я использую 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"
        }
    ]
}

Как создать три массива, которые содержат свойства [x].ID, свойства [x].PropertyName и свойства [x].key в Qt?

Edit:

Используя QScriptEngine, я пробовал это:

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

QScriptEngine engine;

QScriptValue result = engine.evaluate(data);

qDebug() << result.toString();

Отладка говорит "SyntaxError: Ошибка анализа"

4b9b3361

Ответ 1

Я понял:

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());
}