Russian Qt Forum
Ноябрь 14, 2019, 10:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сложный json файл Как открыть ??  (Прочитано 3207 раз)
Zusykss
Самовар
**
Offline Offline

Сообщений: 128


Просмотр профиля
« : Февраль 24, 2019, 21:52 »

Пробую открыть как обычно json файл
Код:
QJsonDocument jsonDoc = QJsonDocument::fromRawData(json.toStdString().c_str(),json.length());
            auto obj = jsonDoc.object();

Пробовал вставлять
через метод
fromJson
Не открывается obj пустой
Подскажите что не так делаю
Файл прикладываю
Записан
ssoft
Бывалый
*****
Offline Offline

Сообщений: 454


Просмотр профиля
« Ответ #1 : Февраль 25, 2019, 07:37 »

Цитировать
... caller has to guarantee that data will not be deleted or modified as long as any QJsonDocument, QJsonObject or QJsonArray still references the data.

В примере никак не гарантируется существование данных (toStdString().c_str() - создает временный объект).
Используйте fromJson вместо fromRawData.

Да, и файл не полный, обрывается на "IsIconP

Цитировать
Returns a valid (non-null) QJsonDocument if the parsing succeeds. If it fails, the returned document will be null, and the optional error variable will contain further details about the error.
Проверьте парсер на наличие ошибок после чтения.
« Последнее редактирование: Февраль 25, 2019, 07:47 от ssoft » Записан
Zusykss
Самовар
**
Offline Offline

Сообщений: 128


Просмотр профиля
« Ответ #2 : Февраль 25, 2019, 10:02 »

Почти сделал как надо только столкнулся с новой проблемой)
Вот есть json файл , я из него получаю данные.
Код:
            QJsonDocument jsonDoc = QJsonDocument::fromJson(json.toUtf8());
            auto obj = jsonDoc.object();

            foreach(const QJsonValue & value, obj)
            {
                auto objarr = value.toArray();
                QString asin = value.toString();
                QString size = objarr[0].toString();
                QString color = objarr[1].toString();

            }

Вопрос в том чего я не могу получить значение самого массива Непонимающий
Это вот эти значения "B07LBQBCPM":
{"B07LBQBCPM":["A29","0-6 months"],"B07D7S1Q65":["Yellow3","13-24 months"],"B07D7SD4HT":["Blue4","0-6 months"],"B07D7RT68Z":["Blue4","13-24 months"],"B07D7S37TY":["Red3","0-6 months"],"B07FPGB53C":["A24","13-24 months"],"B07FPQYJPC":["A2","13-24 months"],"B07FPXKGBN":["A6","7-12 months"],"B07D7R6KTH":["Yellow3","7-12 months"],"B07FP74FFP":["A20","13-24 months"],"B07D7SFG99":["White5","7-12 months"],"B07D7RFY7X":["Pink5","7-12 months"],"B07D7T73LY":["Pink7","0-6 months"],"B07FPLG312":["A27","7-12 months"],"B07D7SPN97":["White5","0-6 months"],"B07FPKYWT5":["A27","0-6 months"],"B07LBQ9GJF":["A28","0-6 months"],"B07FPG3G34":["A27","13-24 months"],"B07LBNQ7HM":["A28","7-12 months"],"B07FPCJRVY":["A9","7-12 months"],"B07FPFFQNP":["A24","0-6 months"],"B07FPBT2F5":["A24","7-12 months"],"B07FPC2XQZ":["A20","0-6 months"],"B07D7RZNSX":["Pink4","13-24 months"],"B07LBMV1ZX":["A29","13-24 months"],"B07D7SBLGX":["Blue3","0-6 months"],"B07D7RRYZQ":["Mint3","7-12 months"],"B07D7SP751":["Yellow3","0-6 months"],"B07FY3QDHB":["A22","0-6 months"],"B07FPDDB78":["A6","13-24 months"],"B07LBPFB42":["A28","13-24 months"],"B07FY6CZJW":["A22","7-12 months"],"B07FP9G397":["A9","13-24 months"],"B07D7SP7DR":["Blue4","7-12 months"],"B07D7RT8K5":["Pink4","7-12 months"],"B07FP9GQTZ":["A2","7-12 months"],"B07D7SD3TN":["Blue3","13-24 months"],"B07FPSXWL6":["A20","7-12 months"],"B07LBNZ5H1":["A29","7-12 months"],"B07D7RSDG3":["Pink3","13-24 months"],"B07D7T3CH7":["Pink4","0-6 months"],"B07D7S7Z98":["Blue3","7-12 months"],"B07FPHWQJ2":["A2","0-6 months"],"B07FPBMVC8":["A9","0-6 months"],"B07D7STQ8T":["Black3","13-24 months"],"B07D7SJ9SW":["Pink3","7-12 months"],"B07FPWN3B1":["A6","0-6 months"],"B07FY2F84V":["A22","13-24 months"],"B07D7S6NHD":["White5","13-24 months"]}
Записан
Zusykss
Самовар
**
Offline Offline

Сообщений: 128


Просмотр профиля
« Ответ #3 : Февраль 25, 2019, 10:06 »

Все оказалось очень просто

    QStringList list = obj.keys();
В этом листе все ключи
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.091 секунд. Запросов: 22.