Это домашняя страница проекта Джексона.
(Примечание: для актуальной информации о выпуске см. В релизах Джексона)
Джексон был известен как «библиотека Java Json» или «Лучший анализатор JSON для Java». Или просто как "Json for Java".
Более того, Джексон представляет собой набор инструментов обработки данных для Java (и платформы JVM), включая флагманскую потоковую библиотеку анализатора / генератора JSON, соответствующую библиотеку связывания данных (Pojos to JSON) и дополнительные модули формата данных для обработки данных, кодируемых в Avro, Bson, Cbor, Csv, Smile, Smile, Smile, Smile, Smile, Smile, Smile, Smile, Smile, Smile, Smile, Small; и даже большой набор модулей формата данных для поддержки типов данных широко используемых типов данных, таких как гуава, Joda, Pcollections и многие, многое другое (см. Ниже).
В то время как фактические основные компоненты живут под своими собственными проектами, включая три основных пакета (потоковая передача, DataBind, Annotations); Библиотеки формата данных; Библиотеки типа данных; Jax-rs-провайдер; и разнообразный набор других модулей расширения - этот проект действует как центральный центр для связывания всех кусочков вместе.
Хорошим компаньоном для этого ReadMe является FAQ Project Jackson Project.
Jackson Suite имеет две основные версии: 1.x устарел, и не выпускаются никакие версии; 2.x - активно разработанная версия. В этих двух основных версиях используются разные пакеты Java и Maven Artifact ID, поэтому они не совместимы, но могут мирно сосуществовать: проект может зависеть как от Джексона 1.x, так и от 2.x без конфликтов. Это по проекту и было выбрано в качестве стратегии, позволяющей более плавной миграции от 1.x до 2.x.
Последние стабильные версии этих ветвей:
Рекомендуемый способ использования Джексона - через репозитории Maven; Выпуски сделаны в репозиторий Central Maven (CMR). Страницы с вики отдельных проектов иногда также содержат прямые ссылки на загрузку, указывая на CMR.
Примечания к выпуску для выпусков 2.x можно найти на странице Джексона релизов.
Большинство проектов, перечисленных ниже, возглавляют команду разработчиков Джексона; Но некоторые другими членами сообщества Jackson. Мы стараемся, чтобы версии модулей совместимы, чтобы уменьшить путаницу в отношении того, какие версии работают вместе.
Основные модули являются основой, на которой нарастают расширения (модули). В настоящее время существует 3 таких модуля (с Джексона 2.x):
streaming пакете; это зависит как от streaming , так и от пакетов annotations Эти расширения представляют собой подключаемые Module Jackson S (зарегистрированные на ObjectMapper.registerModule() ) и добавляют поддержку данных дата различных часто используемых библиотек Java, добавляя сериализаторы и Deserializers, чтобы пакет DATABIND databind ( ObjectMapper / ObjectReader / ObjectWriter ) могла читать и записывать эти виды.
Модули DataType, непосредственно поддерживаемые командой Джексона, находятся под следующими репозиториями GitHub:
jackson-module-parameter-names : модуль, который добавляет поддержку для использования новой функции JDK8, возможность получить доступ к именам конструктора и параметров метода, чтобы разрешить пропустить @JsonProperty .jackson-datatype-jsr310 : поддержка «Java 8 Dates» (добавлены в JDK 8)jackson-datatype-jdk8 : поддержка типов данных JDK 8, кроме типов даты/времени, включая OptionalMoney , CurrencyUnit )javax.json ) и "new" ( jakarta.json ):jakarta.json ( добавлено в Джексоне 2.12.2 )javax.jsonJSONObject , JSONArrayКроме того, мы знаем о дополнительных модулях, которые не поддерживаются напрямую командой Core Jackson:
jackson-dataformat-protobuf , который добавляет поддержку кодирования/декодирования содержания Protobuf, но не зависит от стандартной библиотеки Java protobufcom.github.caligin.tinytypes , artifact tinytypes-jackson )org.vertx.java.core.json.JsonObject (переупакованные типы узлов org.json ) Jackson JAX-RS Providers имеет обработчики, чтобы добавить поддержку DataFormat для реализаций JAX-RS (например, Jersey, Resteasy, CXF). Провайдеры реализуют MessageBodyReader и MessageBodyWriter . Поддерживаемые форматы в настоящее время включают JSON , Smile , XML , YAML и CBOR .
Модули формата данных предлагают поддержку форматов данных, отличных от JSON. Большинство из них просто внедряют streaming абстракции API, так что можно использовать компонент данных DataBinding как есть; Некоторые предлагают (и требуют) дополнительную функциональность уровня databind для обработки таких вещей, как схемы.
В настоящее время следующие модули формата данных полностью используются и поддерживаются (номер версии в скобках, если это включено, является первой версией Jackson 2.x, включающей модуль; если отсутствует, включен из 2.0)
streaming реализации плюс дополнительная поддержка базы databind для схем AVRO для схем AVROstreaming API, с дополнительными дополнениями databindAvrostreaming API, без изменений для databindstreaming и реализации databindstreaming , так и реализации databind . Аналогично режиму Jaxb '"Код-первый" (без поддержки "Сначала XML схема", но может использовать бобы JaxB)streamingСуществуют также другие модули формата данных, предоставленные разработчиками вне команды Jackson Core:
MsgPack )Аннотации Джексона определяют предполагаемые свойства и ожидаемую обработку для POJOS, и в дополнение к самому Джексону, использующему это для чтения/написания JSON и других форматов, это также позволяет генерировать внешние схемы. Некоторые из этих функций включены в вышеупомянутые расширения данных; Но есть также много автономных схемы, таких как:
Другие полностью полезные модули от команды FasteCxml включают:
@JacksonInject (или в дополнение к)JAXB в качестве альтернативных (в дополнение к или вместо) стандартных аннотаций Джексона@JacksonInject@JsonProperty .В то время как Jackson Databind является хорошим выбором для связывания данных общего назначения, его накладные расходы и запуска могут быть проблематичными в некоторых областях, таких как мобильные телефоны; и особенно для легкого использования (пара чтений или пишет). Кроме того, некоторые разработчики считают полным Jackson API подавляющим.
По всем этим причинам мы решили создать гораздо более простую, меньшую библиотеку, которая поддерживает подмножество функциональности, называемой Джексон -младшим. Он основан на API потокового API Джексона, но не зависит от базы данных. В результате его размер (как JAR, так и использование памяти времени выполнения) значительно меньше; и его API очень компактный.
Если вы хотите помочь с Jackson Project, пожалуйста, проверьте вклад.
Вы также можете проверить:
Компоненты Джексона поддерживаются сообществом Джексона посредством списков рассылки, Forum Forum, Github. Смотрите вклад для получения полной информации.
В дополнение к бесплатной (для всех) поддержки сообщества, поддержка предприятия, начиная с версией 2.10, доступна как часть подписки Tidelift для (большинство) компонентов Джексона.
Содействия Jackson и тысячи других пакетов работают с Tidelift для обеспечения коммерческой поддержки и технического обслуживания для зависимостей с открытым исходным кодом, которые вы используете для создания ваших приложений. Сэкономьте время, снижайте риск и улучшайте здоровье кода, одновременно выплачивая сопровождающих точных зависимостей, которые вы используете. Узнать больше.
Рекомендуемый механизм сообщений о возможной уязвимости безопасности следует за так называемым «скоординированным планом раскрытия» (см. Определение DCP для общей идеи). Первый шаг - подать контакт с безопасностью в TIDELIFT: TIDELIFT будет направлять все отчеты через свою систему для сопровождающих соответствующих пакетов и запустить процесс, который оценит беспокойство и выпустит возможные исправления, отправляет уведомления об обновлении и так далее. Обратите внимание, что вам не нужно быть подписчиком TIDELIFT, чтобы подать контакт безопасности.
В качестве альтернативы вы также можете сообщить о возможных уязвимостях для info на почтовом адресе FASEXML DOT COM. Обратите внимание, что подача проблемы с отчетом - это нормально, но если вы это сделаете, пожалуйста, не включайте в себя информацию о проблеме безопасности, а только в контакте с электронной почтой. Это важно для того, чтобы дать нам время, чтобы предоставить патч, если это необходимо, для проблемы.
Должны Джексон Быны, которые должны быть сообщены против компонентов, на которые они влияют: по этой причине трекер выпуска не включен для этого проекта. Если вы не уверены, какая конкретная проблема проекта влияет, наиболее вероятным компонентом является jackson-databind , поэтому вы бы использовали проберки Джексона Databind.
Для предложений и новых идей, попробуйте Jackson Future Ideas
Для начинающих пользователей есть много хороших учебных пособий по использованию Джексона, включая учебные пособия по общему использованию / JSON:
и более конкретные учебные пособия:
Следующие сообщения были опубликованы о компонентах Джексона
Поскольку вы, вероятно, хотите, чтобы мнения разработчиков Java не были связаны с проектом Jackson, в отношении какой библиотеки использовать, вот ссылки на некоторые существующие независимые сравнения: