После поиска в некоторых существующих библиотеках для JSON я наконец-то получил эти два:
- Джексон
- Google GSon
Я немного неравнодушен к GSON, но в сети говорят, что GSon страдает от некоторой небесной проблемы с производительностью (по состоянию на сентябрь 2009 года).
Я продолжаю свое сравнение; А пока я ищу помощи, чтобы принять решение.
Ответы:
Я провел это исследование на прошлой неделе, и у меня были те же две библиотеки. Поскольку я использую Spring 3 (который принимает Джексона в его стандартном представлении Json ' JacksonJsonView '), для меня было более естественным сделать то же самое. 2 lib практически одинаковы ... в конце они просто отображаются в файл json! :)
В любом случае, как вы сказали, Джексон имеет + в исполнении, и это очень важно для меня. Проект также довольно активен, как вы можете видеть на их веб-странице, и это тоже очень хороший знак.
источник
Jackson и Gson - самые полные пакеты Java JSON, касающиеся фактической поддержки привязки данных; многие другие пакеты обеспечивают только примитивную привязку Map / List (или эквивалентную древовидную модель). Оба имеют полную поддержку универсальных типов, а также достаточную настраиваемость для многих распространенных случаев использования.
Поскольку я больше знаком с Джексоном, вот некоторые аспекты, в которых, как мне кажется, Джексон имеет более полную поддержку, чем Gson (извинения, если я пропускаю функцию Gson):
источник
Gson 1.6 теперь включает низкоуровневый потоковый API и новый парсер, который на самом деле быстрее, чем Джексон.
источник
Добавление к другим ответам уже приведенным выше. Если для вас важна нечувствительность к регистру, используйте Джексона. Gson не поддерживает регистронезависимость для имен ключей, в то время как Джексон поддерживает.
Вот две ссылки по теме
(Нет) Поддержка чувствительности к регистру в Gson: GSON: Как получить нечувствительный к регистру элемент от Json?
Поддержка чувствительности к регистру в Джексоне https://gist.github.com/electrum/1260489
источник
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
, добавленных в Jackson 2.5. Поэтому нет необходимости добавлять собственный код для этого.Похоже, GSon не поддерживает JAXB. Используя аннотированный класс JAXB для создания или обработки сообщения JSON, я могу использовать тот же класс для создания интерфейса веб-службы Restful с помощью Spring MVC.
источник