LINUX.ORG.RU

C++ json serialization

 , ,


0

2

Посоветуйте библиотек, которые удобно позволяют сериализовать классы в json и при этом совместимы с stl контейнерами.

Хотелось бы так же услышать об опыте использования этих библиотек. А то гугл вот, нашёл некий json spirit.

★★★★★

http://json.org/

ВНЕЗАПНО

C++:

JSONKit.

jsonme--.

ThorsSerializer.

JsonBox.

jsoncpp.

zoolib.

JOST.

CAJUN.

libjson.

nosjob.

rapidjson.

jsoncons.

JSON++.

BattleCoder ★★★★★ ()
Ответ на: комментарий от BattleCoder

Вот у меня глаза разбегаются, потому собственно и спрашиваю, дабы на грабли не наступать.

invy ★★★★★ ()

rapidjson хорош, но нет совместимости с stl. libjson более плюсовее, но тоже не работает с stl напрямую. Остальными не пользовался, но не уверен, что совместимость с stl действительно нужна

gavlig ★★★ ()

если предполагается работа Qt то есть хорошая либа QJson.

Blastbit ()
Ответ на: комментарий от timon-ltv

если предполагается работа Qt то есть хорошая либа QJson.

Начиная с qt5.0 поддержка внедрена непосредственно в тулкит: http://qt-project.org/doc/qt-5.0/qtcore/json.html

интересно, спасибо, жаль qt в планах не было.

invy ★★★★★ ()
Ответ на: комментарий от Boy_from_Jungle

Где у него json сериализация?
boost_propertytree - это не сериализация.

В boost_serialization нету поддержки json.

invy ★★★★★ ()

Полностью совместимых с STL не будет, потому что контейнеры STL жёстко типизированные и содержать произвольные данные без дополнительной обёртки не могут.

Лучше выбрать какую-нибудь со своими контейнерами, или QJson.

quiet_readonly ★★★★ ()
Ответ на: комментарий от quiet_readonly

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

boost_serialization умеет. Только не json.
http://www.boost.org/doc/libs/1_54_0/libs/serialization/doc/tutorial.html#stl

invy ★★★★★ ()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от invy

Точно, нет сериализации в json, только хмл
я помню что это хотели сделать, но видно забили

Boy_from_Jungle ★★★★ ()

Использую jsoncpp везде. Удобно. Либа минималистичная, сорцы интегрируются прям в проект. Совместимости с stl нет, надо руками заворачивать/разворачивать в контейнеры jsoncpp.

Reset ★★★★★ ()
Ответ на: комментарий от Reset

Спасибо, посмотрю, минималистичная - это хорошо.

invy ★★★★★ ()

Поддерживаю вариант с jsoncpp. Из того, что я заметил и может не понравиться в ней:

  • 64-битные числа пока есть только в development версии
  • не поддерживаются строки в формате Unicode, следовательно при необходимости прийдётся конвертировать их в и из UTF-8
xaizek ★★★★★ ()
Ответ на: комментарий от invy

boost_serialization уже не ломает бинарную совместимость данных в каждом релизе?

Pavval ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.