Комментарии 32
Хорошая и полезная статья.
Очень актуально, тем более JSON набирает популярность.
Очень актуально, тем более JSON набирает популярность.
+3
Недавно выбирал чем парсить JSON под проект с Qt, тоже выбрал QJson.
0
А разве есть разумные альтернативы? (ну кроме как написать свой парсер)
0
Есть. Например, qt-json: github.com/ereilin/qt-json
Делает то же самое — преобразует JSON в QVariantMap и обратно, но при этом код намного чище (всего два файла: .h и .cpp), и никакой дополнительной сборки не требуется (можно просто включить файлы в свой проект, лицензия BSD).
Активно юзаем в нескольких проектах — нареканий никаких.
Делает то же самое — преобразует JSON в QVariantMap и обратно, но при этом код намного чище (всего два файла: .h и .cpp), и никакой дополнительной сборки не требуется (можно просто включить файлы в свой проект, лицензия BSD).
Активно юзаем в нескольких проектах — нареканий никаких.
0
А умеет QObject в Json и обратно?
0
Напрямую нет, но решение тривиально — зарегистрировать свой класс в QMetaType, после чего он будет без проблем конвертиться в QVariant и обратно, который, в свою очередь, можно конвертить в JSON.
0
Выбрал бы его с удовольствием но там где он мне нужен его лицензия GPL не подойдет. А вот у QJson LGPL что уже намного лучше.
0
boost::property_tree :-)
0
Спасибо за обзор, хорошая либа. Я её юзал когда надо было общаться с сервером через API, выдающий json, и допиливать который для выдачи xml никто не собирался. Выручила =)
0
Спасибо за заметку.
0
Юзаем маленький k8json, который в принципе пошустрее и умеет скипать записи вместо полного парсинга, что сильно скорость поиска увеличивает по массивам. А вообще в Qt5 есть встроенная поддержка json'а, видел, что народ просто этот модуль целиком выдирал и юзал с Qt4!
+1
А вообще в Qt5 есть встроенная поддержка json'а, видел, что народ просто этот модуль целиком выдирал и юзал с Qt4!
Вы про qjsondb?
0
Спасибо. Теперь буду знать как называется. Сейчас опробую на новеньком Qt5.
+1
Вот и я думаю, что лучше это юзать по возможности, а не юзать лисапеды, которые скоро вымрут как класс.
0
Ну, полный переезд на Qt5 состоится не совсем скоро, ещё живы даже Qt3-проекты. И не все старые системы Qt5 будет поддерживать, к сожалению. Так что лисапеды живы и будут жить, как ни крути =)
0
Я в дикой природе живых Qt3 проектов не видел, всякие МСВС не в счет, это нишевые. Старый embedded, где Qt5 не взлетит тоже в общем-то уже прошлое.
Да и лучше тогда этот QJsonDocument на Qt4 накатить, чтобы потом проще было на Qt5 переезжать
Да и лучше тогда этот QJsonDocument на Qt4 накатить, чтобы потом проще было на Qt5 переезжать
0
Ну, насчёт последнего пункта согласен =)
А вот активные троечные проекты видел, и даже собирал. Правда, поробуй теперь вспомнить их названия, года два назад это было.
А вот активные троечные проекты видел, и даже собирал. Правда, поробуй теперь вспомнить их названия, года два назад это было.
0
А что, нишевые проекты — не проекты? У нас есть в дикой природе нишевой проект на Qt3, но уже в состоянии долгоиграющей поддержки. Новая версия на Qt4 уже сделана, но там случилась такая революция по всем фронтам, что отмашку на развёртывание дадут ещё очень не скоро.
Кстати, а есть порт QJsonDocument для Qt4 в качестве отдельной библиотеки? Или оно просто без бубна взлетает?
Кстати, а есть порт QJsonDocument для Qt4 в качестве отдельной библиотеки? Или оно просто без бубна взлетает?
0
Может быть «сериализация»?
+2
Кстати если нужно только парсить (не строить) несложный JSON, то проще использовать QtScript для разбора — не надо ковыряться с поддержкой сторонней библиотеки.
+3
На самом деле, QJson простая как болт и очень быстро прикручивается (и есть в репозиториях большинства Linux-дистрибутивов). Можно, конечно, и через QtScript, но более громоздко и топорно :)
Строить JSON тоже можно — классический JSON2.js под QtScript прекрасно работает и уже несколько лет живёт у нас в одном из проектов.
Строить JSON тоже можно — классический JSON2.js под QtScript прекрасно работает и уже несколько лет живёт у нас в одном из проектов.
0
Да я не спорю, просто иногда бывает такой проект, в котором подключение любой(!) сторонней библиотеки это недели бюрократических согласований. И при этом задачи возложенные на JSON парсер настолько минимальны что возится с библиотекой и самое главное бюрократией не имеет смысла.
0
НЛО прилетело и опубликовало эту надпись здесь
Заметка хорошая, но зачем столько орфографических ошибок?
0
Добавлю свои пять копеек.
У меня под Win 7 с Qt 4.8.1 только The GUI way сборки заработал. Пришлось для сборки установить GNU Cmake.
У меня под Win 7 с Qt 4.8.1 только The GUI way сборки заработал. Пришлось для сборки установить GNU Cmake.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
QJson как библиотека для работы с JSON в Qt