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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: json vs Qt  (Прочитано 5954 раз)
Dragonic
Гость
« : Июль 27, 2013, 14:25 »

всем привет!

разбираю QJsonDocument/etc. проблемы начались почти сразу же.
собственно, как средствами Qt корректно распарсить подобный json?
Код:
{"hello":
    {
    "number":123,
    "somemsg":"message",

    "params":
        [
          {"key":"bye","value":"1"},
          {"key":"bey","value":"qwerty"}
        ]
    }
}
пока дальше hello как-то не выполз, и циклы не желают помогать
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Июль 27, 2013, 15:06 »

Сам не пользовался еще, но судя по документации нужно делать следующее:
Код:
QJsonDocument doc = QJsonDocument::fromJson(json);
QJsonObject obj = doc.object();
Дальше используем итераторы, либо конвертим в QVariantMap и также пользуемся итераторами)
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Dragonic
Гость
« Ответ #2 : Июль 27, 2013, 16:12 »

Сам не пользовался еще, но судя по документации нужно делать следующее:
Код:
QJsonDocument doc = QJsonDocument::fromJson(json);
QJsonObject obj = doc.object();
Дальше используем итераторы, либо конвертим в QVariantMap и также пользуемся итераторами)
я это делал, но почему-то не выходило. посмотрев серию elementary (Улыбающийся), как-то сразу быстро дошло:
Код:
QJsonObject obj = QJsonDocument::fromJson(json).object()["hello"].toObject();
qint8 error_code = obj["number"].toDouble();
QString error_msg = obj["somemsg"].toString();
банально просто и легко, но всё равно спасибо (:
« Последнее редактирование: Июль 27, 2013, 16:14 от Dragonic » Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #3 : Июль 27, 2013, 18:21 »

Скрытая реклама детектед  Подмигивающий
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Dragonic
Гость
« Ответ #4 : Июль 28, 2013, 17:17 »

Скрытая реклама детектед  Подмигивающий
линукс скоро будет? (: в чем "partially done" заключается?
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #5 : Июль 29, 2013, 10:52 »

Про скрытую рекламу я имел в виду это:
Цитировать
посмотрев серию elementary

А по QtMEL есть отдельная тема - http://www.prog.org.ru/topic_24657_0.html
Linux уже поддерживается.

P.S. На сайте пока не обновил, т.к. грядет его реконструкция.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Dragonic
Гость
« Ответ #6 : Август 21, 2013, 22:34 »

Про скрытую рекламу я имел в виду это:
Цитировать
посмотрев серию elementary
я мастер жирафоответов конечно Улыбающийся
я намекал, мол всё же на этом форуме актуальнее не elementary Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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