This is a multi-module project that contains Jackson-based Jakarta-RS (*) providers for following data formats:
Providers implement Jakarta-RS MessageBodyReader
and MessageBodyWriter
handlers for specific
data formats. They also contain SPI settings for auto-registration.
(*) NOTE: Jakarta-RS is the package under jakarta.ws.rs
, replacing older JAX-RS which lived
under javax.ws.rs
.
For JAX-RS variant, see repo jackson-jaxrs-providers
Usual Maven build like other Jackson repos, with one difference: requires JDK 11 to build (as opposed to JDK 8 for most other repos), as of Jackson 2.13
Module is fully functional and considered mature.
To use Jakarta-RS on Maven-based projects, use dependencies like:
<dependency>
<groupId>com.fasterxml.jackson.jakarta.rs</groupId>
<artifactId>jackson-jakarta-rs-json-provider</artifactId>
<version>2.14.1</version>
</dependency>
(above is for JSON provider; modify appropriately for other providers)
Due to auto-registration, it should be possible to simply add Maven dependency (or include jar if using other build systems) and let Jakarta-RS implementation discover provider. If this does not work you need to consult documentation of the Jakarta-RS implementation for details.
To use Jackson with Jersey see their documentation.
In addition to annotation value classes, it is also possible to use a subset of Jackson annotations with provider.
Here is a short list of supported annotations that work with all formats:
@JsonView
can be used to define active view for specific endpoint@JsonRootName
can be used to specify alternate rootname; most often used with XML, but possibly with JSON as well.@JacksonAnnotationsInside
meta-annotation may be used as a marker, to create "annotation bundles", similar to how they are used with value type annotationscom.fasterxml.jackson.jakarta.rs.annotation.JacksonFeatures
can be used with all provid to enable/disableSerializationFeature
/DeserializationFeature
for data-binding configurationJsonParser.Feature
/JsonGenerator.Feature
for low(er) level Streaming read/write options
In addition there are format-specific annotations that may be used:
- JSON has:
com.fasterxml.jackson.jakarta.rs.json.annotation.JSONP
to defineJSONP
wrapping for serialized result
Jackson components are supported by the Jackson community through mailing lists, Gitter forum, Github issues. See Participation, Contributing for full details.
Support may be added via Tidelift Subscription model, if there is enough interest.
For documentation, downloads links, check out Wiki