Чтение JSON файла в QJsonDocument - PullRequest
0 голосов
/ 08 апреля 2020

Это структура моего json:

{
    "images": [
        {
            "imagename": "banner.jpg",
            "shapes": [
            ]
        },
        {
            "imagename": "banner.png",
            "shapes": [
            ]
        },
        {
            "imagename": "logo.png",
            "shapes": [
            ]
        }
    ]
}

И вот мой код:

QString filename = jsonFilePath;

QString val;
QFile file;
file.setFileName(filename);
file.open(QIODevice::ReadOnly | QIODevice::Text);
val = file.readAll();
file.close();
QJsonDocument d = QJsonDocument::fromJson(val.toUtf8());
qDebug() << d;

Когда я запускаю приведенный выше код и пытаюсь вывести d с использованием qDebug() все, что выводится на консоль, - QJsonDocument().

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Я бы предложил использовать метод to Json () при печати QJsonDocument

qDebug() << "Json Document:" << d.toJson();
0 голосов
/ 08 апреля 2020

Ваш код работает нормально, если нет ошибок во время выполнения. Я бы посоветовал проверить наличие ошибок времени выполнения:

  1. Проверить результат возврата file.open().
  2. Использовать второй аргумент QJsonDocument::fromJson(), чтобы перехватить JSON ошибок разбора и напечатайте их так:
    QJsonParseError err;
    QJsonDocument d = QJsonDocument::fromJson(val.toUtf8(), &err);
    qDebug() << d << err.errorString();

Надеюсь, это поможет отловить ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...