Pull to refresh

Comments 32

Хорошая и полезная статья.
Очень актуально, тем более JSON набирает популярность.
Недавно выбирал чем парсить JSON под проект с Qt, тоже выбрал QJson.
А разве есть разумные альтернативы? (ну кроме как написать свой парсер)
Есть. Например, qt-json: github.com/ereilin/qt-json
Делает то же самое — преобразует JSON в QVariantMap и обратно, но при этом код намного чище (всего два файла: .h и .cpp), и никакой дополнительной сборки не требуется (можно просто включить файлы в свой проект, лицензия BSD).
Активно юзаем в нескольких проектах — нареканий никаких.
Там другое имелось в виду, но сериализация десериализация пишется на раз два три.
Выбрал бы его с удовольствием но там где он мне нужен его лицензия GPL не подойдет. А вот у QJson LGPL что уже намного лучше.
Спасибо за обзор, хорошая либа. Я её юзал когда надо было общаться с сервером через API, выдающий json, и допиливать который для выдачи xml никто не собирался. Выручила =)
Юзаем маленький k8json, который в принципе пошустрее и умеет скипать записи вместо полного парсинга, что сильно скорость поиска увеличивает по массивам. А вообще в Qt5 есть встроенная поддержка json'а, видел, что народ просто этот модуль целиком выдирал и юзал с Qt4!
А вообще в Qt5 есть встроенная поддержка json'а, видел, что народ просто этот модуль целиком выдирал и юзал с Qt4!


Вы про qjsondb?
Спасибо. Теперь буду знать как называется. Сейчас опробую на новеньком Qt5.
Вот и я думаю, что лучше это юзать по возможности, а не юзать лисапеды, которые скоро вымрут как класс.
Ну, полный переезд на Qt5 состоится не совсем скоро, ещё живы даже Qt3-проекты. И не все старые системы Qt5 будет поддерживать, к сожалению. Так что лисапеды живы и будут жить, как ни крути =)
Я в дикой природе живых Qt3 проектов не видел, всякие МСВС не в счет, это нишевые. Старый embedded, где Qt5 не взлетит тоже в общем-то уже прошлое.
Да и лучше тогда этот QJsonDocument на Qt4 накатить, чтобы потом проще было на Qt5 переезжать
Ну, насчёт последнего пункта согласен =)
А вот активные троечные проекты видел, и даже собирал. Правда, поробуй теперь вспомнить их названия, года два назад это было.
Меня больше волнует Qt3Support, которого немало еще осталось.
А что, нишевые проекты — не проекты? У нас есть в дикой природе нишевой проект на Qt3, но уже в состоянии долгоиграющей поддержки. Новая версия на Qt4 уже сделана, но там случилась такая революция по всем фронтам, что отмашку на развёртывание дадут ещё очень не скоро.

Кстати, а есть порт QJsonDocument для Qt4 в качестве отдельной библиотеки? Или оно просто без бубна взлетает?
«Сиреализация QObject» это да, самая цепляющая часть статьи.
Кстати если нужно только парсить (не строить) несложный JSON, то проще использовать QtScript для разбора — не надо ковыряться с поддержкой сторонней библиотеки.
На самом деле, QJson простая как болт и очень быстро прикручивается (и есть в репозиториях большинства Linux-дистрибутивов). Можно, конечно, и через QtScript, но более громоздко и топорно :)

Строить JSON тоже можно — классический JSON2.js под QtScript прекрасно работает и уже несколько лет живёт у нас в одном из проектов.
Да я не спорю, просто иногда бывает такой проект, в котором подключение любой(!) сторонней библиотеки это недели бюрократических согласований. И при этом задачи возложенные на JSON парсер настолько минимальны что возится с библиотекой и самое главное бюрократией не имеет смысла.
Это где такой маразм? Да и что мешает просто пару файлов в проект воткнуть если они под BSD?
Поверь, всякий маразм бывает. Некоторым даже запрещают использовать весь opensource кроме «сертифицированного в ФСБ».
UFO landed and left these words here
Заметка хорошая, но зачем столько орфографических ошибок?
Добавлю свои пять копеек.

У меня под Win 7 с Qt 4.8.1 только The GUI way сборки заработал. Пришлось для сборки установить GNU Cmake.
Sign up to leave a comment.

Articles