Class JacksonJsonProvider
- java.lang.Object
-
- com.fasterxml.jackson.jakarta.rs.base.ProviderBase<JacksonJsonProvider,com.fasterxml.jackson.databind.ObjectMapper,JsonEndpointConfig,JsonMapperConfigurator>
-
- com.fasterxml.jackson.jakarta.rs.json.JacksonJsonProvider
-
- All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned,jakarta.ws.rs.ext.MessageBodyReader<Object>,jakarta.ws.rs.ext.MessageBodyWriter<Object>
- Direct Known Subclasses:
JacksonXmlBindJsonProvider
@Provider @Consumes("*/*") @Produces("*/*") public class JacksonJsonProvider extends com.fasterxml.jackson.jakarta.rs.base.ProviderBase<JacksonJsonProvider,com.fasterxml.jackson.databind.ObjectMapper,JsonEndpointConfig,JsonMapperConfigurator>Basic implementation of Jakarta-RS abstractions (MessageBodyReader,MessageBodyWriter) needed for binding JSON ("application/json") content to and from Java Objects ("POJO"s).Actual data binding functionality is implemented by
ObjectMapper: mapper to use can be configured in multiple ways:- By explicitly passing mapper to use in constructor
- By explictly setting mapper to use by
ProviderBase.setMapper(MAPPER) - By defining Jakarta-RS
Providerthat returnsObjectMappers. - By doing none of above, in which case a default mapper instance is constructed (and configured if configuration methods are called)
Note that the default mapper instance will be automatically created if one of explicit configuration methods (like
ProviderBase.configure(com.fasterxml.jackson.jakarta.rs.cfg.JakartaRSFeature, boolean)) is called: if so, Provider-based introspection is NOT used, but the resulting Mapper is used as configured.There is also (
JacksonXmlBindJsonProvider) which is configured by default to use both Jackson and Jakarta XmlBin annotations for configuration (base class when used as-is defaults to using just Jackson annotations)- Author:
- Tatu Saloranta
-
-
Field Summary
Fields Modifier and Type Field Description protected String_jsonpFunctionNameJSONP function name to use for automatic JSONP wrapping, if any; if null, no JSONP wrapping is done.protected jakarta.ws.rs.ext.Providers_providersInjectable context object used to locate configured instance ofObjectMapperto use for actual serialization.static com.fasterxml.jackson.jakarta.rs.cfg.Annotations[]BASIC_ANNOTATIONSDefault annotation sets to use, if not explicitly defined during construction: only Jackson annotations are used for the base class.static StringMIME_JAVASCRIPTstatic StringMIME_JAVASCRIPT_MS-
Fields inherited from class com.fasterxml.jackson.jakarta.rs.base.ProviderBase
_cfgCheckCanDeserialize, _cfgCheckCanSerialize, _cfgCustomUntouchables, _defaultReadView, _defaultWriteView, _jakartaRSFeatures, _mapperConfig, _readers, _unreadableClasses, _untouchables, _unwritableClasses, _writers, DEFAULT_UNREADABLES, DEFAULT_UNTOUCHABLES, DEFAULT_UNWRITABLES, HEADER_CONTENT_TYPE_OPTIONS, JAKARTA_RS_FEATURE_DEFAULTS
-
-
Constructor Summary
Constructors Constructor Description JacksonJsonProvider()Default constructor, usually used when provider is automatically configured to be used with Jakarta-RS implementation.JacksonJsonProvider(com.fasterxml.jackson.databind.ObjectMapper mapper)JacksonJsonProvider(com.fasterxml.jackson.databind.ObjectMapper mapper, com.fasterxml.jackson.jakarta.rs.cfg.Annotations[] annotationsToUse)Constructor to use when a custom mapper (usually components like serializer/deserializer factories that have been configured) is to be used.JacksonJsonProvider(com.fasterxml.jackson.jakarta.rs.cfg.Annotations... annotationsToUse)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected JsonEndpointConfig_configForReading(com.fasterxml.jackson.databind.ObjectReader reader, Annotation[] annotations)protected JsonEndpointConfig_configForWriting(com.fasterxml.jackson.databind.ObjectWriter writer, Annotation[] annotations)protected com.fasterxml.jackson.databind.ObjectMapper_locateMapperViaProvider(Class<?> type, jakarta.ws.rs.core.MediaType mediaType)protected booleanhasMatchingMediaType(jakarta.ws.rs.core.MediaType mediaType)Helper method used to check whether given media type is supported by this provider.voidsetJSONPFunctionName(String fname)com.fasterxml.jackson.core.Versionversion()Method that will return version information stored in and read from jar that contains this class.-
Methods inherited from class com.fasterxml.jackson.jakarta.rs.base.ProviderBase
_addSuperTypes, _configForReading, _configForWriting, _containedIn, _createGenerator, _createNoContentException, _createParser, _endpointForReading, _endpointForWriting, _findCustomUntouchable, _isIgnorableForReading, _isIgnorableForWriting, _isSpecialReadable, _modifyHeaders, addUntouchable, checkCanDeserialize, checkCanSerialize, configure, configure, configure, configure, configure, disable, disable, disable, disable, disable, disable, enable, enable, enable, enable, enable, enable, findEncoding, findSuperTypes, findSuperTypes, getSize, hasMatchingMediaTypeForReading, hasMatchingMediaTypeForWriting, isEnabled, isReadable, isWriteable, locateMapper, readFrom, removeUntouchable, setAnnotationsToUse, setDefaultReadView, setDefaultView, setDefaultWriteView, setMapper, writeTo
-
-
-
-
Field Detail
-
MIME_JAVASCRIPT
public static final String MIME_JAVASCRIPT
- See Also:
- Constant Field Values
-
MIME_JAVASCRIPT_MS
public static final String MIME_JAVASCRIPT_MS
- See Also:
- Constant Field Values
-
BASIC_ANNOTATIONS
public static final com.fasterxml.jackson.jakarta.rs.cfg.Annotations[] BASIC_ANNOTATIONS
Default annotation sets to use, if not explicitly defined during construction: only Jackson annotations are used for the base class. Sub-classes can use other settings.
-
_jsonpFunctionName
protected String _jsonpFunctionName
JSONP function name to use for automatic JSONP wrapping, if any; if null, no JSONP wrapping is done. Note that this is the default value that can be overridden on per-endpoint basis.
-
_providers
@Context protected jakarta.ws.rs.ext.Providers _providers
Injectable context object used to locate configured instance ofObjectMapperto use for actual serialization.
-
-
Constructor Detail
-
JacksonJsonProvider
public JacksonJsonProvider()
Default constructor, usually used when provider is automatically configured to be used with Jakarta-RS implementation.
-
JacksonJsonProvider
public JacksonJsonProvider(com.fasterxml.jackson.jakarta.rs.cfg.Annotations... annotationsToUse)
- Parameters:
annotationsToUse- Annotation set(s) to use for configuring data binding
-
JacksonJsonProvider
public JacksonJsonProvider(com.fasterxml.jackson.databind.ObjectMapper mapper)
-
JacksonJsonProvider
public JacksonJsonProvider(com.fasterxml.jackson.databind.ObjectMapper mapper, com.fasterxml.jackson.jakarta.rs.cfg.Annotations[] annotationsToUse)Constructor to use when a custom mapper (usually components like serializer/deserializer factories that have been configured) is to be used.- Parameters:
annotationsToUse- Sets of annotations (Jackson, XmlBind) that provider should support
-
-
Method Detail
-
version
public com.fasterxml.jackson.core.Version version()
Method that will return version information stored in and read from jar that contains this class.
-
setJSONPFunctionName
public void setJSONPFunctionName(String fname)
-
hasMatchingMediaType
protected boolean hasMatchingMediaType(jakarta.ws.rs.core.MediaType mediaType)
Helper method used to check whether given media type is supported by this provider. Current implementation essentially checks to see whetherMediaType.getSubtype()returns "json" or something ending with "+json". Or "text/x-json" (since 2.3)- Specified by:
hasMatchingMediaTypein classcom.fasterxml.jackson.jakarta.rs.base.ProviderBase<JacksonJsonProvider,com.fasterxml.jackson.databind.ObjectMapper,JsonEndpointConfig,JsonMapperConfigurator>- Since:
- 2.2
-
_locateMapperViaProvider
protected com.fasterxml.jackson.databind.ObjectMapper _locateMapperViaProvider(Class<?> type, jakarta.ws.rs.core.MediaType mediaType)
- Specified by:
_locateMapperViaProviderin classcom.fasterxml.jackson.jakarta.rs.base.ProviderBase<JacksonJsonProvider,com.fasterxml.jackson.databind.ObjectMapper,JsonEndpointConfig,JsonMapperConfigurator>
-
_configForReading
protected JsonEndpointConfig _configForReading(com.fasterxml.jackson.databind.ObjectReader reader, Annotation[] annotations)
- Specified by:
_configForReadingin classcom.fasterxml.jackson.jakarta.rs.base.ProviderBase<JacksonJsonProvider,com.fasterxml.jackson.databind.ObjectMapper,JsonEndpointConfig,JsonMapperConfigurator>
-
_configForWriting
protected JsonEndpointConfig _configForWriting(com.fasterxml.jackson.databind.ObjectWriter writer, Annotation[] annotations)
- Specified by:
_configForWritingin classcom.fasterxml.jackson.jakarta.rs.base.ProviderBase<JacksonJsonProvider,com.fasterxml.jackson.databind.ObjectMapper,JsonEndpointConfig,JsonMapperConfigurator>
-
-