LINUX.ORG.RU

C++ json serialization

 , ,


0

2

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

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

★★★★★

Последнее исправление: unfo (всего исправлений: 3)

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

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

invy ★★★★★
() автор топика

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

gavlig ★★★
()
Ответ на: комментарий от 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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.