@nyar_roller
Молодой, перспектиный Python Developer

Как спарсить QJsonArray?

В моём QT aplication есть необходимость хранить значение структур одного типа в JSON словаре.
Про статью JSON Save Game Example знаю, пытался долго разобраться, ни к чему не пришёл, форумы тоже все облазил с таким же результатом.
Основная проблема заключается в следующем:
Есть JSON документ:
spoiler
{
    "devices": [
        {
            "name": "some name",
            "price": 0,
            "year": 0
        }
    ]
}

Использую следующий код чтобы считать информацию:
spoiler
//open my JSON
    QFile file("path/to/myfile.json");
    file.open(QIODevice::ReadOnly);
    QByteArray jsonData = file.readAll();

    //finding array
    QJsonDocument document = QJsonDocument::fromJson(jsonData);
    QJsonObject object = document.object();
    QJsonArray temp_array = object["devices"].toArray();
    qDebug() << temp_array[0].toObject().value("name").toString();  //returned ""
    qDebug() << temp_array.size(); //returned 0
    qDebug() << temp_array.empty(); //returned true
    qDebug() << object.keys(); //returned QList("devices")


Как я ранее указал в комментарии, попытка считать значения ключа "name" вернуло мне пустую строку, а функции size и empty указывают на то, что я просматриваю пустой массив. Однако функция keys указывает на то, что мой json объект всё же содержит ключ "devices".
В чём проблема может быть?
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 2
@xibir
файл открыть надо

QFile file("path/to/myfile.json");
file.open(QIODevice::ReadOnly);
QByteArray jsonData = file.readAll();
Ответ написан
Zifix
@Zifix Куратор тега Qt
Barbatum
1. Перед тем, как задать вопрос, подготовьте архив с минимальным проектом, воспроизводящим проблему.

2. https://cpp.hotexamples.com/ru/examples/-/QJsonPar...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы