public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
JsonParser
and JsonGenerator
for implementing actual reading/writing of JSON.
The main conversion API is defined in ObjectCodec
, so that
implementation details of this class need not be exposed to
streaming parser and generator classes.
Note on caching: root-level deserializers are always cached, and accessed using full (generics-aware) type information. This is different from caching of referenced types, which is more limited and is done only for a subset of all deserializer types. The main reason for difference is that at root-level there is no incoming reference (and hence no referencing property, no referral information or annotations to produce differing deserializers), and that the performance impact greatest at root level (since it'll essentially cache the full graph of deserializers involved).
Modifier and Type | Class and Description |
---|---|
static class |
ObjectMapper.DefaultTypeResolverBuilder
Customized
TypeResolverBuilder that provides type resolver builders
used with so-called "default typing"
(see enableDefaultTyping() for details). |
static class |
ObjectMapper.DefaultTyping
Enumeration used with
enableDefaultTyping()
to specify what kind of types (classes) default typing should
be used for. |
Modifier and Type | Field and Description |
---|---|
protected static PrettyPrinter |
_defaultPrettyPrinter |
protected DeserializationConfig |
_deserializationConfig
Configuration object that defines basic global
settings for the serialization process
|
protected DefaultDeserializationContext |
_deserializationContext
Blueprint context object; stored here to allow custom
sub-classes.
|
protected InjectableValues |
_injectableValues
Provider for values to inject in deserialized POJOs.
|
protected JsonFactory |
_jsonFactory
Factory used to create
JsonParser and JsonGenerator
instances as necessary. |
protected HashMap<ClassKey,Class<?>> |
_mixInAnnotations
Mapping that defines how to apply mix-in annotations: key is
the type to received additional annotations, and value is the
type that has annotations to "mix in".
|
protected Set<Object> |
_registeredModuleTypes
Set of module types (as per
Module.getTypeId() that have been
registered; kept track of iff MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS
is enabled, so that duplicate registration calls can be ignored
(to avoid adding same handlers multiple times, mostly). |
protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> |
_rootDeserializers
We will use a separate main-level Map for keeping track
of root-level deserializers.
|
protected RootNameLookup |
_rootNames
Cache for root names used when root-wrapping is enabled.
|
protected SerializationConfig |
_serializationConfig
Configuration object that defines basic global
settings for the serialization process
|
protected SerializerFactory |
_serializerFactory
Serializer factory used for constructing serializers.
|
protected DefaultSerializerProvider |
_serializerProvider
Object that manages access to serializers used for serialization,
including caching.
|
protected SubtypeResolver |
_subtypeResolver
Thing used for registering sub-types, resolving them to
super/sub-types as needed.
|
protected TypeFactory |
_typeFactory
Specific factory used for creating
JavaType instances;
needed to allow modules to add more custom type handling
(mostly to support types of non-Java JVM languages) |
protected static AnnotationIntrospector |
DEFAULT_ANNOTATION_INTROSPECTOR |
protected static BaseSettings |
DEFAULT_BASE
Base settings contain defaults used for all
ObjectMapper
instances. |
protected static VisibilityChecker<?> |
STD_VISIBILITY_CHECKER |
Modifier | Constructor and Description |
---|---|
|
ObjectMapper()
Default constructor, which will construct the default
JsonFactory as necessary, use
SerializerProvider as its
SerializerProvider , and
BeanSerializerFactory as its
SerializerFactory . |
|
ObjectMapper(JsonFactory jf)
Constructs instance that uses specified
JsonFactory
for constructing necessary JsonParser s and/or
JsonGenerator s. |
|
ObjectMapper(JsonFactory jf,
DefaultSerializerProvider sp,
DefaultDeserializationContext dc)
Constructs instance that uses specified
JsonFactory
for constructing necessary JsonParser s and/or
JsonGenerator s, and uses given providers for accessing
serializers and deserializers. |
protected |
ObjectMapper(ObjectMapper src)
Copy-constructor, mostly used to support
copy() . |
Modifier and Type | Method and Description |
---|---|
protected void |
_checkInvalidCopy(Class<?> exp) |
protected void |
_configAndWriteValue(JsonGenerator jgen,
Object value)
Method called to configure the generator as necessary and then
call write functionality
|
protected void |
_configAndWriteValue(JsonGenerator jgen,
Object value,
Class<?> viewClass) |
protected Object |
_convert(Object fromValue,
JavaType toValueType)
Actual conversion implementation: instead of using existing read
and write methods, much of code is inlined.
|
protected PrettyPrinter |
_defaultPrettyPrinter()
Helper method that should return default pretty-printer to
use for generators constructed by this mapper, when instructed
to use default pretty printer.
|
protected JsonDeserializer<Object> |
_findRootDeserializer(DeserializationContext ctxt,
JavaType valueType)
Method called to locate deserializer for the passed root-level value.
|
protected JsonToken |
_initForReading(JsonParser p)
Method called to ensure that given parser is ready for reading
content for data binding.
|
protected ObjectReader |
_newReader(DeserializationConfig config)
Factory method sub-classes must override, to produce
ObjectReader
instances of proper sub-type |
protected ObjectReader |
_newReader(DeserializationConfig config,
JavaType valueType,
Object valueToUpdate,
FormatSchema schema,
InjectableValues injectableValues)
Factory method sub-classes must override, to produce
ObjectReader
instances of proper sub-type |
protected ObjectWriter |
_newWriter(SerializationConfig config)
Factory method sub-classes must override, to produce
ObjectWriter
instances of proper sub-type |
protected ObjectWriter |
_newWriter(SerializationConfig config,
FormatSchema schema)
Factory method sub-classes must override, to produce
ObjectWriter
instances of proper sub-type |
protected ObjectWriter |
_newWriter(SerializationConfig config,
JavaType rootType,
PrettyPrinter pp)
Factory method sub-classes must override, to produce
ObjectWriter
instances of proper sub-type |
protected Object |
_readMapAndClose(JsonParser jp,
JavaType valueType) |
protected Object |
_readValue(DeserializationConfig cfg,
JsonParser jp,
JavaType valueType)
Actual implementation of value reading+binding operation.
|
protected DefaultSerializerProvider |
_serializerProvider(SerializationConfig config)
Overridable helper method used for constructing
SerializerProvider to use for serialization. |
protected Object |
_unwrapAndDeserialize(JsonParser p,
DeserializationContext ctxt,
DeserializationConfig config,
JavaType rootType,
JsonDeserializer<Object> deser) |
protected void |
_verifySchemaType(FormatSchema schema) |
void |
acceptJsonFormatVisitor(Class<?> type,
JsonFormatVisitorWrapper visitor)
Method for visiting type hierarchy for given type, using specified visitor.
|
void |
acceptJsonFormatVisitor(JavaType type,
JsonFormatVisitorWrapper visitor)
Method for visiting type hierarchy for given type, using specified visitor.
|
ObjectMapper |
addHandler(DeserializationProblemHandler h)
Method for adding specified
DeserializationProblemHandler
to be used for handling specific problems during deserialization. |
ObjectMapper |
addMixIn(Class<?> target,
Class<?> mixinSource)
Method to use for adding mix-in annotations to use for augmenting
specified class or interface.
|
void |
addMixInAnnotations(Class<?> target,
Class<?> mixinSource)
Deprecated.
Since 2.5: replaced by a fluent form of the method;
addMixIn(Class, Class) . |
boolean |
canDeserialize(JavaType type)
Method that can be called to check whether mapper thinks
it could deserialize an Object of given type.
|
boolean |
canDeserialize(JavaType type,
AtomicReference<Throwable> cause)
Method similar to
canDeserialize(JavaType) but that can return
actual Throwable that was thrown when trying to construct
serializer: this may be useful in figuring out what the actual problem is. |
boolean |
canSerialize(Class<?> type)
Method that can be called to check whether mapper thinks
it could serialize an instance of given Class.
|
boolean |
canSerialize(Class<?> type,
AtomicReference<Throwable> cause)
Method similar to
canSerialize(Class) but that can return
actual Throwable that was thrown when trying to construct
serializer: this may be useful in figuring out what the actual problem is. |
ObjectMapper |
clearProblemHandlers()
Method for removing all registered
DeserializationProblemHandler s
instances from this mapper. |
ObjectMapper |
configure(DeserializationFeature f,
boolean state)
Method for changing state of an on/off deserialization feature for
this object mapper.
|
ObjectMapper |
configure(JsonGenerator.Feature f,
boolean state)
Method for changing state of an on/off
JsonGenerator feature for
generator instances this object mapper creates. |
ObjectMapper |
configure(JsonParser.Feature f,
boolean state)
Method for changing state of specified
JsonParser.Feature s
for parser instances this object mapper creates. |
ObjectMapper |
configure(MapperFeature f,
boolean state)
Method for changing state of an on/off mapper feature for
this mapper instance.
|
ObjectMapper |
configure(SerializationFeature f,
boolean state)
Method for changing state of an on/off serialization feature for
this object mapper.
|
JavaType |
constructType(Type t)
Convenience method for constructing
JavaType out of given
type (typically java.lang.Class ), but without explicit
context. |
<T> T |
convertValue(Object fromValue,
Class<T> toValueType)
Convenience method for doing two-step conversion from given value, into
instance of given value type.
|
<T> T |
convertValue(Object fromValue,
JavaType toValueType) |
<T> T |
convertValue(Object fromValue,
TypeReference<?> toValueTypeRef) |
ObjectMapper |
copy()
Method for creating a new
ObjectMapper instance that
has same initial configuration as this instance. |
ArrayNode |
createArrayNode()
Note: return type is co-variant, as basic ObjectCodec
abstraction can not refer to concrete node types (as it's
part of core package, whereas impls are part of mapper
package)
|
protected DefaultDeserializationContext |
createDeserializationContext(JsonParser jp,
DeserializationConfig cfg)
Internal helper method called to create an instance of
DeserializationContext
for deserializing a single root value. |
ObjectNode |
createObjectNode()
Note: return type is co-variant, as basic ObjectCodec
abstraction can not refer to concrete node types (as it's
part of core package, whereas impls are part of mapper
package)
|
protected ClassIntrospector |
defaultClassIntrospector()
Overridable helper method used to construct default
ClassIntrospector
to use. |
ObjectMapper |
disable(DeserializationFeature feature)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
disable(DeserializationFeature first,
DeserializationFeature... f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
disable(JsonGenerator.Feature... features)
Method for disabling specified
JsonGenerator.Feature s
for parser instances this object mapper creates. |
ObjectMapper |
disable(JsonParser.Feature... features)
Method for disabling specified
JsonParser.Feature s
for parser instances this object mapper creates. |
ObjectMapper |
disable(MapperFeature... f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
disable(SerializationFeature f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
disable(SerializationFeature first,
SerializationFeature... f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
disableDefaultTyping()
Method for disabling automatic inclusion of type information; if so, only
explicitly annotated types (ones with
JsonTypeInfo ) will have
additional embedded type information. |
ObjectMapper |
enable(DeserializationFeature feature)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
enable(DeserializationFeature first,
DeserializationFeature... f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
enable(JsonGenerator.Feature... features)
Method for enabling specified
JsonGenerator.Feature s
for parser instances this object mapper creates. |
ObjectMapper |
enable(JsonParser.Feature... features)
Method for enabling specified
JsonParser.Feature s
for parser instances this object mapper creates. |
ObjectMapper |
enable(MapperFeature... f)
Method for enabling specified
MapperConfig features. |
ObjectMapper |
enable(SerializationFeature f)
Method for enabling specified
DeserializationConfig feature. |
ObjectMapper |
enable(SerializationFeature first,
SerializationFeature... f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
enableDefaultTyping()
Convenience method that is equivalent to calling
|
ObjectMapper |
enableDefaultTyping(ObjectMapper.DefaultTyping dti)
Convenience method that is equivalent to calling
|
ObjectMapper |
enableDefaultTyping(ObjectMapper.DefaultTyping applicability,
JsonTypeInfo.As includeAs)
Method for enabling automatic inclusion of type information, needed
for proper deserialization of polymorphic types (unless types
have been annotated with
JsonTypeInfo ). |
ObjectMapper |
enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability,
String propertyName)
Method for enabling automatic inclusion of type information -- needed
for proper deserialization of polymorphic types (unless types
have been annotated with
JsonTypeInfo ) --
using "As.PROPERTY" inclusion mechanism and specified property name
to use for inclusion (default being "@class" since default type information
always uses class name as type identifier) |
ObjectMapper |
findAndRegisterModules()
Convenience method that is functionally equivalent to:
mapper.registerModules(mapper.findModules());
|
Class<?> |
findMixInClassFor(Class<?> cls) |
static List<Module> |
findModules()
Method for locating available methods, using JDK
ServiceLoader
facility, along with module-provided SPI. |
static List<Module> |
findModules(ClassLoader classLoader)
Method for locating available methods, using JDK
ServiceLoader
facility, along with module-provided SPI. |
JsonSchema |
generateJsonSchema(Class<?> t)
Generate Json-schema
instance for specified class.
|
DateFormat |
getDateFormat() |
DeserializationConfig |
getDeserializationConfig()
Method that returns
the shared default
DeserializationConfig object
that defines configuration settings for deserialization. |
DeserializationContext |
getDeserializationContext()
Method for getting current
DeserializationContext . |
JsonFactory |
getFactory()
Method that can be used to get hold of
JsonFactory that this
mapper uses if it needs to construct JsonParser s
and/or JsonGenerator s. |
JsonFactory |
getJsonFactory()
Deprecated.
Since 2.1: Use
getFactory() instead |
JsonNodeFactory |
getNodeFactory()
Method that can be used to get hold of
JsonNodeFactory
that this mapper will use when directly constructing
root JsonNode instances for Trees. |
PropertyNamingStrategy |
getPropertyNamingStrategy() |
SerializationConfig |
getSerializationConfig()
Method that returns the shared default
SerializationConfig
object that defines configuration settings for serialization. |
SerializerFactory |
getSerializerFactory()
Method for getting current
SerializerFactory . |
SerializerProvider |
getSerializerProvider() |
SubtypeResolver |
getSubtypeResolver()
Method for accessing subtype resolver in use.
|
TypeFactory |
getTypeFactory()
Accessor for getting currently configured
TypeFactory instance. |
VisibilityChecker<?> |
getVisibilityChecker()
Method for accessing currently configured visibility checker;
object used for determining whether given property element
(method, field, constructor) can be auto-detected or not.
|
boolean |
isEnabled(DeserializationFeature f)
Method for checking whether given deserialization-specific
feature is enabled.
|
boolean |
isEnabled(JsonFactory.Feature f)
Convenience method, equivalent to:
|
boolean |
isEnabled(JsonGenerator.Feature f) |
boolean |
isEnabled(JsonParser.Feature f) |
boolean |
isEnabled(MapperFeature f)
Method for checking whether given
MapperFeature is enabled. |
boolean |
isEnabled(SerializationFeature f)
Method for checking whether given serialization-specific
feature is enabled.
|
int |
mixInCount() |
<T extends ObjectReader> |
reader()
Factory method for constructing
ObjectReader with
default settings. |
<T extends ObjectReader> |
reader(Base64Variant defaultBase64)
Factory method for constructing
ObjectReader that will
use specified Base64 encoding variant for Base64-encoded binary data. |
<T extends ObjectReader> |
reader(Class<?> type)
Factory method for constructing
ObjectReader that will
read or update instances of specified type |
<T extends ObjectReader> |
reader(ContextAttributes attrs)
Factory method for constructing
ObjectReader that will
use specified default attributes. |
<T extends ObjectReader> |
reader(DeserializationFeature feature)
Factory method for constructing
ObjectReader with
specified feature enabled (compared to settings that this
mapper instance has). |
<T extends ObjectReader> |
reader(DeserializationFeature first,
DeserializationFeature... other)
Factory method for constructing
ObjectReader with
specified features enabled (compared to settings that this
mapper instance has). |
<T extends ObjectReader> |
reader(FormatSchema schema)
Factory method for constructing
ObjectReader that will
pass specific schema object to JsonParser used for
reading content. |
<T extends ObjectReader> |
reader(InjectableValues injectableValues)
Factory method for constructing
ObjectReader that will
use specified injectable values. |
<T extends ObjectReader> |
reader(JavaType type)
Factory method for constructing
ObjectReader that will
read or update instances of specified type |
<T extends ObjectReader> |
reader(JsonNodeFactory f)
Factory method for constructing
ObjectReader that will
use specified JsonNodeFactory for constructing JSON trees. |
<T extends ObjectReader> |
reader(TypeReference<?> type)
Factory method for constructing
ObjectReader that will
read or update instances of specified type |
<T extends ObjectReader> |
readerForUpdating(Object valueToUpdate)
Factory method for constructing
ObjectReader that will
update given Object (usually Bean, but can be a Collection or Map
as well, but NOT an array) with JSON data. |
<T extends ObjectReader> |
readerWithView(Class<?> view)
Factory method for constructing
ObjectReader that will
deserialize objects using specified JSON View (filter). |
JsonNode |
readTree(byte[] content)
Method to deserialize JSON content as tree expressed using set of
JsonNode instances. |
JsonNode |
readTree(File file)
Method to deserialize JSON content as tree expressed using set of
JsonNode instances. |
JsonNode |
readTree(InputStream in)
Method to deserialize JSON content as tree expressed
using set of
JsonNode instances. |
<T extends TreeNode> |
readTree(JsonParser jp)
Method to deserialize JSON content as tree expressed
using set of
JsonNode instances. |
JsonNode |
readTree(Reader r)
Method to deserialize JSON content as tree expressed
using set of
JsonNode instances. |
JsonNode |
readTree(String content)
Method to deserialize JSON content as tree expressed using set of
JsonNode instances. |
JsonNode |
readTree(URL source)
Method to deserialize JSON content as tree expressed using set of
JsonNode instances. |
<T> T |
readValue(byte[] src,
Class<T> valueType) |
<T> T |
readValue(byte[] src,
int offset,
int len,
Class<T> valueType) |
<T> T |
readValue(byte[] src,
int offset,
int len,
JavaType valueType) |
<T> T |
readValue(byte[] src,
int offset,
int len,
TypeReference valueTypeRef) |
<T> T |
readValue(byte[] src,
JavaType valueType) |
<T> T |
readValue(byte[] src,
TypeReference valueTypeRef) |
<T> T |
readValue(File src,
Class<T> valueType)
Method to deserialize JSON content from given file into given Java type.
|
<T> T |
readValue(File src,
JavaType valueType)
Method to deserialize JSON content from given file into given Java type.
|
<T> T |
readValue(File src,
TypeReference valueTypeRef)
Method to deserialize JSON content from given file into given Java type.
|
<T> T |
readValue(InputStream src,
Class<T> valueType) |
<T> T |
readValue(InputStream src,
JavaType valueType) |
<T> T |
readValue(InputStream src,
TypeReference valueTypeRef) |
<T> T |
readValue(JsonParser jp,
Class<T> valueType)
Method to deserialize JSON content into a non-container
type (it can be an array type, however): typically a bean, array
or a wrapper type (like
Boolean ). |
<T> T |
readValue(JsonParser jp,
JavaType valueType)
Type-safe overloaded method, basically alias for
readValue(JsonParser, Class) . |
<T> T |
readValue(JsonParser jp,
ResolvedType valueType)
Method to deserialize JSON content into a Java type, reference
to which is passed as argument.
|
<T> T |
readValue(JsonParser jp,
TypeReference<?> valueTypeRef)
Method to deserialize JSON content into a Java type, reference
to which is passed as argument.
|
<T> T |
readValue(Reader src,
Class<T> valueType) |
<T> T |
readValue(Reader src,
JavaType valueType) |
<T> T |
readValue(Reader src,
TypeReference valueTypeRef) |
<T> T |
readValue(String content,
Class<T> valueType)
Method to deserialize JSON content from given JSON content String.
|
<T> T |
readValue(String content,
JavaType valueType)
Method to deserialize JSON content from given JSON content String.
|
<T> T |
readValue(String content,
TypeReference valueTypeRef)
Method to deserialize JSON content from given JSON content String.
|
<T> T |
readValue(URL src,
Class<T> valueType)
Method to deserialize JSON content from given resource into given Java type.
|
<T> T |
readValue(URL src,
JavaType valueType) |
<T> T |
readValue(URL src,
TypeReference valueTypeRef)
Method to deserialize JSON content from given resource into given Java type.
|
<T> MappingIterator<T> |
readValues(JsonParser jp,
Class<T> valueType)
Type-safe overloaded method, basically alias for
readValues(JsonParser, ResolvedType) . |
<T> MappingIterator<T> |
readValues(JsonParser jp,
JavaType valueType)
Type-safe overloaded method, basically alias for
readValues(JsonParser, ResolvedType) . |
<T> MappingIterator<T> |
readValues(JsonParser jp,
ResolvedType valueType)
Method for reading sequence of Objects from parser stream.
|
<T> MappingIterator<T> |
readValues(JsonParser jp,
TypeReference<?> valueTypeRef)
Method for reading sequence of Objects from parser stream.
|
ObjectMapper |
registerModule(Module module)
Method for registering a module that can extend functionality
provided by this mapper; for example, by adding providers for
custom serializers and deserializers.
|
ObjectMapper |
registerModules(Iterable<Module> modules)
Convenience method for registering specified modules in order;
functionally equivalent to:
|
ObjectMapper |
registerModules(Module... modules)
Convenience method for registering specified modules in order;
functionally equivalent to:
|
void |
registerSubtypes(Class<?>... classes)
Method for registering specified class as a subtype, so that
typename-based resolution can link supertypes to subtypes
(as an alternative to using annotations).
|
void |
registerSubtypes(NamedType... types)
Method for registering specified class as a subtype, so that
typename-based resolution can link supertypes to subtypes
(as an alternative to using annotations).
|
ObjectMapper |
setAnnotationIntrospector(AnnotationIntrospector ai)
Method for changing
AnnotationIntrospector used by this
mapper instance for both serialization and deserialization |
ObjectMapper |
setAnnotationIntrospectors(AnnotationIntrospector serializerAI,
AnnotationIntrospector deserializerAI)
Method for changing
AnnotationIntrospector instances used
by this mapper instance for serialization and deserialization,
specifying them separately so that different introspection can be
used for different aspects |
ObjectMapper |
setBase64Variant(Base64Variant v)
Method that will configure default
Base64Variant that
byte[] serializers and deserializers will use. |
ObjectMapper |
setConfig(DeserializationConfig config)
Method that allows overriding of the underlying
DeserializationConfig
object. |
ObjectMapper |
setConfig(SerializationConfig config)
Method that allows overriding of the underlying
SerializationConfig
object, which contains serialization-specific configuration settings. |
ObjectMapper |
setDateFormat(DateFormat dateFormat)
Method for configuring the default
DateFormat to use when serializing time
values as Strings, and deserializing from JSON Strings. |
ObjectMapper |
setDefaultTyping(TypeResolverBuilder<?> typer)
Method for enabling automatic inclusion of type information, using
specified handler object for determining which types this affects,
as well as details of how information is embedded.
|
void |
setFilters(FilterProvider filterProvider)
Convenience method that is equivalent to:
|
Object |
setHandlerInstantiator(HandlerInstantiator hi)
Method for configuring
HandlerInstantiator to use for creating
instances of handlers (such as serializers, deserializers, type and type
id resolvers), given a class. |
ObjectMapper |
setInjectableValues(InjectableValues injectableValues)
Method for configuring
InjectableValues which used to find
values to inject. |
ObjectMapper |
setLocale(Locale l)
Method for overriding default locale to use for formatting.
|
void |
setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)
Deprecated.
Since 2.5: replaced by a fluent form of the method;
setMixIns(java.util.Map<java.lang.Class<?>, java.lang.Class<?>>) . |
ObjectMapper |
setMixIns(Map<Class<?>,Class<?>> sourceMixins)
Method to use for defining mix-in annotations to use for augmenting
annotations that processable (serializable / deserializable)
classes have.
|
ObjectMapper |
setNodeFactory(JsonNodeFactory f)
Method for specifying
JsonNodeFactory to use for
constructing root level tree nodes (via method
createObjectNode() |
ObjectMapper |
setPropertyNamingStrategy(PropertyNamingStrategy s)
Method for setting custom property naming strategy to use.
|
ObjectMapper |
setSerializationInclusion(JsonInclude.Include incl)
Method for setting defalt POJO property inclusion strategy for serialization.
|
ObjectMapper |
setSerializerFactory(SerializerFactory f)
Method for setting specific
SerializerFactory to use
for constructing (bean) serializers. |
ObjectMapper |
setSerializerProvider(DefaultSerializerProvider p)
Method for setting specific
SerializerProvider to use
for handling caching of JsonSerializer instances. |
ObjectMapper |
setSubtypeResolver(SubtypeResolver str)
Method for setting custom subtype resolver to use.
|
ObjectMapper |
setTimeZone(TimeZone tz)
Method for overriding default TimeZone to use for formatting.
|
ObjectMapper |
setTypeFactory(TypeFactory f)
Method that can be used to override
TypeFactory instance
used by this mapper. |
ObjectMapper |
setVisibility(PropertyAccessor forMethod,
JsonAutoDetect.Visibility visibility)
Convenience method that allows changing configuration for
underlying
VisibilityChecker s, to change details of what kinds of
properties are auto-detected. |
void |
setVisibilityChecker(VisibilityChecker<?> vc)
Method for setting currently configured visibility checker;
object used for determining whether given property element
(method, field, constructor) can be auto-detected or not.
|
JsonParser |
treeAsTokens(TreeNode n)
Method for constructing a
JsonParser out of JSON tree
representation. |
<T> T |
treeToValue(TreeNode n,
Class<T> valueType)
Convenience conversion method that will bind data given JSON tree
contains into specific value (usually bean) type.
|
<T extends JsonNode> |
valueToTree(Object fromValue)
Reverse of
treeToValue(com.fasterxml.jackson.core.TreeNode, java.lang.Class<T>) ; given a value (usually bean), will
construct equivalent JSON Tree representation. |
Version |
version()
Method that will return version information stored in and read from jar
that contains this class.
|
<W extends ObjectWriter> |
writer()
Convenience method for constructing
ObjectWriter
with default settings. |
<W extends ObjectWriter> |
writer(Base64Variant defaultBase64)
Factory method for constructing
ObjectWriter that will
use specified Base64 encoding variant for Base64-encoded binary data. |
<W extends ObjectWriter> |
writer(CharacterEscapes escapes)
Factory method for constructing
ObjectReader that will
use specified character escaping details for output. |
<W extends ObjectWriter> |
writer(ContextAttributes attrs)
Factory method for constructing
ObjectWriter that will
use specified default attributes. |
<W extends ObjectWriter> |
writer(DateFormat df)
Factory method for constructing
ObjectWriter that will
serialize objects using specified DateFormat ; or, if
null passed, using timestamp (64-bit number. |
<W extends ObjectWriter> |
writer(FilterProvider filterProvider)
Factory method for constructing
ObjectWriter that will
serialize objects using specified filter provider. |
<W extends ObjectWriter> |
writer(FormatSchema schema)
Factory method for constructing
ObjectWriter that will
pass specific schema object to JsonGenerator used for
writing content. |
<W extends ObjectWriter> |
writer(PrettyPrinter pp)
Factory method for constructing
ObjectWriter that will
serialize objects using specified pretty printer for indentation
(or if null, no pretty printer) |
<W extends ObjectWriter> |
writer(SerializationFeature feature)
Factory method for constructing
ObjectWriter with
specified feature enabled (compared to settings that this
mapper instance has). |
<W extends ObjectWriter> |
writer(SerializationFeature first,
SerializationFeature... other)
Factory method for constructing
ObjectWriter with
specified features enabled (compared to settings that this
mapper instance has). |
<W extends ObjectWriter> |
writerFor(Class<?> rootType)
Factory method for constructing
ObjectWriter that will
serialize objects using specified root type, instead of actual
runtime type of value. |
<W extends ObjectWriter> |
writerFor(JavaType rootType)
Factory method for constructing
ObjectWriter that will
serialize objects using specified root type, instead of actual
runtime type of value. |
<W extends ObjectWriter> |
writerFor(TypeReference<?> rootType)
Factory method for constructing
ObjectWriter that will
serialize objects using specified root type, instead of actual
runtime type of value. |
<W extends ObjectWriter> |
writerWithDefaultPrettyPrinter()
Factory method for constructing
ObjectWriter that will
serialize objects using the default pretty printer for indentation |
<W extends ObjectWriter> |
writerWithType(Class<?> rootType)
Deprecated.
Since 2.5, use
writerFor(Class) instead |
<W extends ObjectWriter> |
writerWithType(JavaType rootType)
Deprecated.
Since 2.5, use
writerFor(JavaType) instead |
<W extends ObjectWriter> |
writerWithType(TypeReference<?> rootType)
Deprecated.
Since 2.5, use
writerFor(TypeReference) instead |
<W extends ObjectWriter> |
writerWithView(Class<?> serializationView)
Factory method for constructing
ObjectWriter that will
serialize objects using specified JSON View (filter). |
void |
writeTree(JsonGenerator jgen,
JsonNode rootNode)
Method to serialize given JSON Tree, using generator
provided.
|
void |
writeTree(JsonGenerator jgen,
TreeNode rootNode) |
void |
writeValue(File resultFile,
Object value)
Method that can be used to serialize any Java value as
JSON output, written to File provided.
|
void |
writeValue(JsonGenerator jgen,
Object value)
Method that can be used to serialize any Java value as
JSON output, using provided
JsonGenerator . |
void |
writeValue(OutputStream out,
Object value)
Method that can be used to serialize any Java value as
JSON output, using output stream provided (using encoding
JsonEncoding.UTF8 ). |
void |
writeValue(Writer w,
Object value)
Method that can be used to serialize any Java value as
JSON output, using Writer provided.
|
byte[] |
writeValueAsBytes(Object value)
Method that can be used to serialize any Java value as
a byte array.
|
String |
writeValueAsString(Object value)
Method that can be used to serialize any Java value as
a String.
|
protected static final AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR
protected static final VisibilityChecker<?> STD_VISIBILITY_CHECKER
protected static final PrettyPrinter _defaultPrettyPrinter
protected static final BaseSettings DEFAULT_BASE
ObjectMapper
instances.protected final JsonFactory _jsonFactory
JsonParser
and JsonGenerator
instances as necessary.protected TypeFactory _typeFactory
JavaType
instances;
needed to allow modules to add more custom type handling
(mostly to support types of non-Java JVM languages)protected InjectableValues _injectableValues
protected SubtypeResolver _subtypeResolver
protected final RootNameLookup _rootNames
protected final HashMap<ClassKey,Class<?>> _mixInAnnotations
Annotations associated with the value classes will be used to override annotations of the key class, associated with the same field or method. They can be further masked by sub-classes: you can think of it as injecting annotations between the target class and its sub-classes (or interfaces)
protected SerializationConfig _serializationConfig
protected DefaultSerializerProvider _serializerProvider
_serializerFactory
to allow
for constructing custom serializers.
Note: while serializers are only exposed SerializerProvider
,
mappers and readers need to access additional API defined by
DefaultSerializerProvider
protected SerializerFactory _serializerFactory
protected DeserializationConfig _deserializationConfig
protected DefaultDeserializationContext _deserializationContext
protected Set<Object> _registeredModuleTypes
Module.getTypeId()
that have been
registered; kept track of iff MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS
is enabled, so that duplicate registration calls can be ignored
(to avoid adding same handlers multiple times, mostly).protected final ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers
Given that we don't expect much concurrency for additions (should very quickly converge to zero after startup), let's explicitly define a low concurrency setting.
Since version 1.5, these may are either "raw" deserializers (when no type information is needed for base type), or type-wrapped deserializers (if it is needed)
public ObjectMapper()
JsonFactory
as necessary, use
SerializerProvider
as its
SerializerProvider
, and
BeanSerializerFactory
as its
SerializerFactory
.
This means that it
can serialize all standard JDK types, as well as regular
Java Beans (based on method names and Jackson-specific annotations),
but does not support JAXB annotations.public ObjectMapper(JsonFactory jf)
JsonFactory
for constructing necessary JsonParser
s and/or
JsonGenerator
s.protected ObjectMapper(ObjectMapper src)
copy()
.public ObjectMapper(JsonFactory jf, DefaultSerializerProvider sp, DefaultDeserializationContext dc)
JsonFactory
for constructing necessary JsonParser
s and/or
JsonGenerator
s, and uses given providers for accessing
serializers and deserializers.jf
- JsonFactory to use: if null, a new MappingJsonFactory
will be constructedsp
- SerializerProvider to use: if null, a SerializerProvider
will be constructeddc
- Blueprint deserialization context instance to use for creating
actual context objects; if null, will construct standard
DeserializationContext
protected ClassIntrospector defaultClassIntrospector()
ClassIntrospector
to use.public ObjectMapper copy()
ObjectMapper
instance that
has same initial configuration as this instance. Note that this
also requires making a copy of the underlying JsonFactory
instance.
Method is typically used when multiple, differently configured mappers are needed. Although configuration is shared, cached serializers and deserializers are NOT shared, which means that the new instance may be re-configured before use; meaning that it behaves the same way as if an instance was constructed from scratch.
protected void _checkInvalidCopy(Class<?> exp)
protected ObjectReader _newReader(DeserializationConfig config)
ObjectReader
instances of proper sub-typeprotected ObjectReader _newReader(DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues)
ObjectReader
instances of proper sub-typeprotected ObjectWriter _newWriter(SerializationConfig config)
ObjectWriter
instances of proper sub-typeprotected ObjectWriter _newWriter(SerializationConfig config, FormatSchema schema)
ObjectWriter
instances of proper sub-typeprotected ObjectWriter _newWriter(SerializationConfig config, JavaType rootType, PrettyPrinter pp)
ObjectWriter
instances of proper sub-typepublic Version version()
version
in interface Versioned
version
in class ObjectCodec
public ObjectMapper registerModule(Module module)
module
- Module to registerpublic ObjectMapper registerModules(Module... modules)
for (Module module : modules) { registerModule(module); }
public ObjectMapper registerModules(Iterable<Module> modules)
for (Module module : modules) { registerModule(module); }
public static List<Module> findModules()
ServiceLoader
facility, along with module-provided SPI.
Note that method does not do any caching, so calls should be considered potentially expensive.
public static List<Module> findModules(ClassLoader classLoader)
ServiceLoader
facility, along with module-provided SPI.
Note that method does not do any caching, so calls should be considered potentially expensive.
public ObjectMapper findAndRegisterModules()
mapper.registerModules(mapper.findModules());
As with findModules()
, no caching is done for modules, so care
needs to be taken to either create and share a single mapper instance;
or to cache introspected set of modules.
public SerializationConfig getSerializationConfig()
SerializationConfig
object that defines configuration settings for serialization.
Note that since instances are immutable, you can NOT change settings by accessing an instance and calling methods: this will simply create new instance of config object.
public DeserializationConfig getDeserializationConfig()
DeserializationConfig
object
that defines configuration settings for deserialization.
Note that since instances are immutable, you can NOT change settings by accessing an instance and calling methods: this will simply create new instance of config object.
public DeserializationContext getDeserializationContext()
DeserializationContext
.
Note that since instances are immutable, you can NOT change settings by accessing an instance and calling methods: this will simply create new instance of context object.
public ObjectMapper setSerializerFactory(SerializerFactory f)
SerializerFactory
to use
for constructing (bean) serializers.public SerializerFactory getSerializerFactory()
SerializerFactory
.
Note that since instances are immutable, you can NOT change settings by accessing an instance and calling methods: this will simply create new instance of factory object.
public ObjectMapper setSerializerProvider(DefaultSerializerProvider p)
SerializerProvider
to use
for handling caching of JsonSerializer
instances.public SerializerProvider getSerializerProvider()
public ObjectMapper setMixIns(Map<Class<?>,Class<?>> sourceMixins)
public ObjectMapper addMixIn(Class<?> target, Class<?> mixinSource)
mixinSource
are taken to override annotations
that target
(or its supertypes) has.target
- Class (or interface) whose annotations to effectively overridemixinSource
- Class (or interface) whose annotations are to
be "added" to target's annotations, overriding as necessarypublic int mixInCount()
@Deprecated public void setMixInAnnotations(Map<Class<?>,Class<?>> sourceMixins)
setMixIns(java.util.Map<java.lang.Class<?>, java.lang.Class<?>>)
.@Deprecated public final void addMixInAnnotations(Class<?> target, Class<?> mixinSource)
addMixIn(Class, Class)
.public VisibilityChecker<?> getVisibilityChecker()
public void setVisibilityChecker(VisibilityChecker<?> vc)
public ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility)
VisibilityChecker
s, to change details of what kinds of
properties are auto-detected.
Basically short cut for doing:
mapper.setVisibilityChecker( mapper.getVisibilityChecker().withVisibility(forMethod, visibility) );one common use case would be to do:
mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);which would make all member fields serializable without further annotations, instead of just public fields (default setting).
forMethod
- Type of property descriptor affected (field, getter/isGetter,
setter, creator)visibility
- Minimum visibility to require for the property descriptors of typepublic SubtypeResolver getSubtypeResolver()
public ObjectMapper setSubtypeResolver(SubtypeResolver str)
public ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai)
AnnotationIntrospector
used by this
mapper instance for both serialization and deserializationpublic ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI)
AnnotationIntrospector
instances used
by this mapper instance for serialization and deserialization,
specifying them separately so that different introspection can be
used for different aspectsserializerAI
- AnnotationIntrospector
to use for configuring
serializationdeserializerAI
- AnnotationIntrospector
to use for configuring
deserializationpublic ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s)
public PropertyNamingStrategy getPropertyNamingStrategy()
public ObjectMapper setSerializationInclusion(JsonInclude.Include incl)
public ObjectMapper enableDefaultTyping()
enableObjectTyping(DefaultTyping.OBJECT_AND_NON_CONCRETE);
public ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti)
enableObjectTyping(dti, JsonTypeInfo.As.WRAPPER_ARRAY);
public ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs)
JsonTypeInfo
).
NOTE: use of JsonTypeInfo.As#EXTERNAL_PROPERTY
NOT SUPPORTED;
and attempts of do so will throw an IllegalArgumentException
to make
this limitation explicit.
applicability
- Defines kinds of types for which additional type information
is added; see ObjectMapper.DefaultTyping
for more information.public ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, String propertyName)
JsonTypeInfo
) --
using "As.PROPERTY" inclusion mechanism and specified property name
to use for inclusion (default being "@class" since default type information
always uses class name as type identifier)public ObjectMapper disableDefaultTyping()
JsonTypeInfo
) will have
additional embedded type information.public ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer)
typer
- Type information inclusion handlerpublic void registerSubtypes(Class<?>... classes)
public void registerSubtypes(NamedType... types)
public TypeFactory getTypeFactory()
TypeFactory
instance.public ObjectMapper setTypeFactory(TypeFactory f)
TypeFactory
instance
used by this mapper.
Note: will also set TypeFactory
that deserialization and
serialization config objects use.
public JavaType constructType(Type t)
JavaType
out of given
type (typically java.lang.Class
), but without explicit
context.public JsonNodeFactory getNodeFactory()
JsonNodeFactory
that this mapper will use when directly constructing
root JsonNode
instances for Trees.
Note: this is just a shortcut for calling
getDeserializationConfig().getNodeFactory()
public ObjectMapper setNodeFactory(JsonNodeFactory f)
JsonNodeFactory
to use for
constructing root level tree nodes (via method
createObjectNode()
public ObjectMapper addHandler(DeserializationProblemHandler h)
DeserializationProblemHandler
to be used for handling specific problems during deserialization.public ObjectMapper clearProblemHandlers()
DeserializationProblemHandler
s
instances from this mapper.public ObjectMapper setConfig(DeserializationConfig config)
DeserializationConfig
object.
It is added as a fallback method that may be used if no other configuration
modifier method works: it should not be used if there are alternatives,
and its use is generally discouraged.
NOTE: only use this method if you know what you are doing -- it allows
by-passing some of checks applied to other configuration methods.
Also keep in mind that as with all configuration of ObjectMapper
,
this is only thread-safe if done before calling any deserialization methods.
public void setFilters(FilterProvider filterProvider)
mapper.setFilters(mapper.getSerializationConfig().withFilters(filterProvider));
Note that usually it is better to use method writer(FilterProvider)
;
however, sometimes
this method is more convenient. For example, some frameworks only allow configuring
of ObjectMapper instances and not ObjectWriters.
public ObjectMapper setBase64Variant(Base64Variant v)
Base64Variant
that
byte[]
serializers and deserializers will use.v
- Base64 variant to usepublic ObjectMapper setConfig(SerializationConfig config)
SerializationConfig
object, which contains serialization-specific configuration settings.
It is added as a fallback method that may be used if no other configuration
modifier method works: it should not be used if there are alternatives,
and its use is generally discouraged.
NOTE: only use this method if you know what you are doing -- it allows
by-passing some of checks applied to other configuration methods.
Also keep in mind that as with all configuration of ObjectMapper
,
this is only thread-safe if done before calling any serialization methods.
public JsonFactory getFactory()
JsonFactory
that this
mapper uses if it needs to construct JsonParser
s
and/or JsonGenerator
s.getFactory
in class ObjectCodec
JsonFactory
that this mapper uses when it needs to
construct Json parser and generators@Deprecated public JsonFactory getJsonFactory()
getFactory()
insteadgetJsonFactory
in class ObjectCodec
public ObjectMapper setDateFormat(DateFormat dateFormat)
DateFormat
to use when serializing time
values as Strings, and deserializing from JSON Strings.
This is preferably to directly modifying SerializationConfig
and
DeserializationConfig
instances.
If you need per-request configuration, use writer(DateFormat)
to
create properly configured ObjectWriter
and use that; this because
ObjectWriter
s are thread-safe whereas ObjectMapper itself is only
thread-safe when configuring methods (such as this one) are NOT called.public DateFormat getDateFormat()
public Object setHandlerInstantiator(HandlerInstantiator hi)
HandlerInstantiator
to use for creating
instances of handlers (such as serializers, deserializers, type and type
id resolvers), given a class.hi
- Instantiator to use; if null, use the default implementationpublic ObjectMapper setInjectableValues(InjectableValues injectableValues)
InjectableValues
which used to find
values to inject.public ObjectMapper setLocale(Locale l)
Locale.getDefault()
.public ObjectMapper setTimeZone(TimeZone tz)
public boolean isEnabled(MapperFeature f)
MapperFeature
is enabled.public ObjectMapper configure(MapperFeature f, boolean state)
public ObjectMapper enable(MapperFeature... f)
MapperConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper disable(MapperFeature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public boolean isEnabled(SerializationFeature f)
public ObjectMapper configure(SerializationFeature f, boolean state)
public ObjectMapper enable(SerializationFeature f)
DeserializationConfig
feature.
Modifies and returns this instance; no new object is created.public ObjectMapper enable(SerializationFeature first, SerializationFeature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper disable(SerializationFeature f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper disable(SerializationFeature first, SerializationFeature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public boolean isEnabled(DeserializationFeature f)
public ObjectMapper configure(DeserializationFeature f, boolean state)
public ObjectMapper enable(DeserializationFeature feature)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper disable(DeserializationFeature feature)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public boolean isEnabled(JsonParser.Feature f)
public ObjectMapper configure(JsonParser.Feature f, boolean state)
JsonParser.Feature
s
for parser instances this object mapper creates.
Note that this is equivalent to directly calling same method
on getFactory()
.
public ObjectMapper enable(JsonParser.Feature... features)
JsonParser.Feature
s
for parser instances this object mapper creates.
Note that this is equivalent to directly calling same method on getFactory()
.
public ObjectMapper disable(JsonParser.Feature... features)
JsonParser.Feature
s
for parser instances this object mapper creates.
Note that this is equivalent to directly calling same method on getFactory()
.
public boolean isEnabled(JsonGenerator.Feature f)
public ObjectMapper configure(JsonGenerator.Feature f, boolean state)
JsonGenerator
feature for
generator instances this object mapper creates.
Note that this is equivalent to directly calling same method
on getFactory()
.
public ObjectMapper enable(JsonGenerator.Feature... features)
JsonGenerator.Feature
s
for parser instances this object mapper creates.
Note that this is equivalent to directly calling same method on getFactory()
.
public ObjectMapper disable(JsonGenerator.Feature... features)
JsonGenerator.Feature
s
for parser instances this object mapper creates.
Note that this is equivalent to directly calling same method on getFactory()
.
public boolean isEnabled(JsonFactory.Feature f)
getJsonFactory().isEnabled(f);
public <T> T readValue(JsonParser jp, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
Boolean
).
Note: this method should NOT be used if the result type is a
container (Collection
or Map
.
The reason is that due to type erasure, key and value types
can not be introspected when using this method.
readValue
in class ObjectCodec
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(JsonParser jp, TypeReference<?> valueTypeRef) throws IOException, JsonParseException, JsonMappingException
readValue
in class ObjectCodec
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public final <T> T readValue(JsonParser jp, ResolvedType valueType) throws IOException, JsonParseException, JsonMappingException
TypeFactory
.readValue
in class ObjectCodec
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(JsonParser jp, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
readValue(JsonParser, Class)
.IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T extends TreeNode> T readTree(JsonParser jp) throws IOException, JsonProcessingException
JsonNode
instances. Returns
root of the resulting tree (where root can consist
of just a single node if the current event is a
value event, not container).readTree
in class ObjectCodec
JsonNode
, if valid JSON content found; null
if input has no content to bind -- note, however, that if
JSON null
token is found, it will be represented
as a non-null JsonNode
(one that returns true
for JsonNode.isNull()
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonProcessingException
public <T> MappingIterator<T> readValues(JsonParser jp, ResolvedType valueType) throws IOException, JsonProcessingException
JsonParser
must point to the first token of
the first element, OR not point to any token (in which case it is advanced
to the next token). This means, specifically, that for wrapped sequences,
parser MUST NOT point to the surrounding START_ARRAY
but rather
to the token following it.
Note that ObjectReader
has more complete set of variants.
readValues
in class ObjectCodec
IOException
JsonProcessingException
public <T> MappingIterator<T> readValues(JsonParser jp, JavaType valueType) throws IOException, JsonProcessingException
readValues(JsonParser, ResolvedType)
.IOException
JsonProcessingException
public <T> MappingIterator<T> readValues(JsonParser jp, Class<T> valueType) throws IOException, JsonProcessingException
readValues(JsonParser, ResolvedType)
.readValues
in class ObjectCodec
IOException
JsonProcessingException
public <T> MappingIterator<T> readValues(JsonParser jp, TypeReference<?> valueTypeRef) throws IOException, JsonProcessingException
readValues
in class ObjectCodec
IOException
JsonProcessingException
public JsonNode readTree(InputStream in) throws IOException, JsonProcessingException
JsonNode
instances.
Returns root of the resulting tree (where root can consist
of just a single node if the current event is a
value event, not container).
If a low-level I/O problem (missing input, network error) occurs,
a IOException
will be thrown.
If a parsing problem occurs (invalid JSON),
JsonParseException
will be thrown.
If no content is found from input (end-of-input), Java
null
will be returned.
in
- Input stream used to read JSON content
for building the JSON tree.JsonNode
, if valid JSON content found; null
if input has no content to bind -- note, however, that if
JSON null
token is found, it will be represented
as a non-null JsonNode
(one that returns true
for JsonNode.isNull()
JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)IOException
JsonProcessingException
public JsonNode readTree(Reader r) throws IOException, JsonProcessingException
JsonNode
instances.
Returns root of the resulting tree (where root can consist
of just a single node if the current event is a
value event, not container).
If a low-level I/O problem (missing input, network error) occurs,
a IOException
will be thrown.
If a parsing problem occurs (invalid JSON),
JsonParseException
will be thrown.
If no content is found from input (end-of-input), Java
null
will be returned.
r
- Reader used to read JSON content
for building the JSON tree.JsonNode
, if valid JSON content found; null
if input has no content to bind -- note, however, that if
JSON null
token is found, it will be represented
as a non-null JsonNode
(one that returns true
for JsonNode.isNull()
IOException
JsonProcessingException
public JsonNode readTree(String content) throws IOException, JsonProcessingException
JsonNode
instances.
Returns root of the resulting tree (where root can consist of just a single node if the current
event is a value event, not container).
If a low-level I/O problem (missing input, network error) occurs,
a IOException
will be thrown.
If a parsing problem occurs (invalid JSON),
JsonParseException
will be thrown.
If no content is found from input (end-of-input), Java
null
will be returned.
content
- JSON content to parse to build the JSON tree.JsonNode
, if valid JSON content found; null
if input has no content to bind -- note, however, that if
JSON null
token is found, it will be represented
as a non-null JsonNode
(one that returns true
for JsonNode.isNull()
JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)IOException
JsonProcessingException
public JsonNode readTree(byte[] content) throws IOException, JsonProcessingException
JsonNode
instances.
Returns root of the resulting tree (where root can consist of just a single node if the current
event is a value event, not container).content
- JSON content to parse to build the JSON tree.JsonNode
, if valid JSON content found; null
if input has no content to bind -- note, however, that if
JSON null
token is found, it will be represented
as a non-null JsonNode
(one that returns true
for JsonNode.isNull()
JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)IOException
JsonProcessingException
public JsonNode readTree(File file) throws IOException, JsonProcessingException
JsonNode
instances.
Returns root of the resulting tree (where root can consist of just a single node if the current
event is a value event, not container).file
- File of which contents to parse as JSON for building a tree instanceJsonNode
, if valid JSON content found; null
if input has no content to bind -- note, however, that if
JSON null
token is found, it will be represented
as a non-null JsonNode
(one that returns true
for JsonNode.isNull()
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonProcessingException
public JsonNode readTree(URL source) throws IOException, JsonProcessingException
JsonNode
instances.
Returns root of the resulting tree (where root can consist of just a single node if the current
event is a value event, not container).source
- URL to use for fetching contents to parse as JSON for building a tree instanceJsonNode
, if valid JSON content found; null
if input has no content to bind -- note, however, that if
JSON null
token is found, it will be represented
as a non-null JsonNode
(one that returns true
for JsonNode.isNull()
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonProcessingException
public void writeValue(JsonGenerator jgen, Object value) throws IOException, JsonGenerationException, JsonMappingException
JsonGenerator
.writeValue
in class ObjectCodec
IOException
JsonGenerationException
JsonMappingException
public void writeTree(JsonGenerator jgen, TreeNode rootNode) throws IOException, JsonProcessingException
writeTree
in class ObjectCodec
IOException
JsonProcessingException
public void writeTree(JsonGenerator jgen, JsonNode rootNode) throws IOException, JsonProcessingException
IOException
JsonProcessingException
public ObjectNode createObjectNode()
Note: return type is co-variant, as basic ObjectCodec abstraction can not refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)
createObjectNode
in class ObjectCodec
public ArrayNode createArrayNode()
Note: return type is co-variant, as basic ObjectCodec abstraction can not refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)
createArrayNode
in class ObjectCodec
public JsonParser treeAsTokens(TreeNode n)
JsonParser
out of JSON tree
representation.treeAsTokens
in class ObjectCodec
n
- Root node of the tree that resulting parser will read frompublic <T> T treeToValue(TreeNode n, Class<T> valueType) throws JsonProcessingException
Functionally equivalent to:
objectMapper.convertValue(n, valueClass);
treeToValue
in class ObjectCodec
JsonProcessingException
public <T extends JsonNode> T valueToTree(Object fromValue) throws IllegalArgumentException
treeToValue(com.fasterxml.jackson.core.TreeNode, java.lang.Class<T>)
; given a value (usually bean), will
construct equivalent JSON Tree representation. Functionally similar
to serializing value into JSON and parsing JSON as tree, but
more efficient.
NOTE: one known difference from actual serialization is that so-called "raw values" are not supported -- since they are opaque sequence of bytes to include (which may or may not be supported by the backend) they can not be converted using this method. It may be possible to support conversions using full serialization, if raw values must be preserved.
T
- Actual node type; usually either basic JsonNode
or
ObjectNode
fromValue
- Bean value to convertIllegalArgumentException
public boolean canSerialize(Class<?> type)
NOTE: since this method does NOT throw exceptions, but internal
processing may, caller usually has little information as to why
serialization would fail. If you want access to internal Exception
,
call canSerialize(Class, AtomicReference)
instead.
public boolean canSerialize(Class<?> type, AtomicReference<Throwable> cause)
canSerialize(Class)
but that can return
actual Throwable
that was thrown when trying to construct
serializer: this may be useful in figuring out what the actual problem is.public boolean canDeserialize(JavaType type)
Exception
being thrown, false
is returned.
NOTE: in case an exception is thrown during course of trying
co construct matching deserializer, it will be effectively swallowed.
If you want access to that exception, call
canDeserialize(JavaType, AtomicReference)
instead.
public boolean canDeserialize(JavaType type, AtomicReference<Throwable> cause)
canDeserialize(JavaType)
but that can return
actual Throwable
that was thrown when trying to construct
serializer: this may be useful in figuring out what the actual problem is.public <T> T readValue(File src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(File src, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(File src, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(URL src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(URL src, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(URL src, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(String content, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(String content, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(String content, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
IOException
- if a low-level I/O problem (unexpected end-of-input,
network error) occurs (passed through as-is without additional wrapping -- note
that this is one case where DeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)JsonParseException
- if underlying input contains invalid content
of type JsonParser
supports (JSON for default case)JsonMappingException
- if the input JSON structure does not match structure
expected for result type (or has other mismatch issues)public <T> T readValue(Reader src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(Reader src, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(Reader src, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(InputStream src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(InputStream src, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(InputStream src, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(byte[] src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(byte[] src, int offset, int len, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(byte[] src, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(byte[] src, int offset, int len, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(byte[] src, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(byte[] src, int offset, int len, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
public void writeValue(File resultFile, Object value) throws IOException, JsonGenerationException, JsonMappingException
public void writeValue(OutputStream out, Object value) throws IOException, JsonGenerationException, JsonMappingException
JsonEncoding.UTF8
).
Note: method does not close the underlying stream explicitly
here; however, JsonFactory
this mapper uses may choose
to close the stream depending on its settings (by default,
it will try to close it when JsonGenerator
we construct
is closed).
public void writeValue(Writer w, Object value) throws IOException, JsonGenerationException, JsonMappingException
Note: method does not close the underlying stream explicitly
here; however, JsonFactory
this mapper uses may choose
to close the stream depending on its settings (by default,
it will try to close it when JsonGenerator
we construct
is closed).
public String writeValueAsString(Object value) throws JsonProcessingException
writeValue(Writer,Object)
with StringWriter
and constructing String, but more efficient.
Note: prior to version 2.1, throws clause included IOException
; 2.1 removed it.
JsonProcessingException
public byte[] writeValueAsBytes(Object value) throws JsonProcessingException
writeValue(Writer,Object)
with ByteArrayOutputStream
and getting bytes, but more efficient.
Encoding used will be UTF-8.
Note: prior to version 2.1, throws clause included IOException
; 2.1 removed it.
JsonProcessingException
public <W extends ObjectWriter> W writer()
ObjectWriter
with default settings.public <W extends ObjectWriter> W writer(SerializationFeature feature)
ObjectWriter
with
specified feature enabled (compared to settings that this
mapper instance has).public <W extends ObjectWriter> W writer(SerializationFeature first, SerializationFeature... other)
ObjectWriter
with
specified features enabled (compared to settings that this
mapper instance has).public <W extends ObjectWriter> W writer(DateFormat df)
ObjectWriter
that will
serialize objects using specified DateFormat
; or, if
null passed, using timestamp (64-bit number.public <W extends ObjectWriter> W writerWithView(Class<?> serializationView)
ObjectWriter
that will
serialize objects using specified JSON View (filter).public <W extends ObjectWriter> W writerFor(Class<?> rootType)
ObjectWriter
that will
serialize objects using specified root type, instead of actual
runtime type of value. Type must be a super-type of runtime type.
Main reason for using this method is performance, as writer is able to pre-fetch serializer to use before write, and if writer is used more than once this avoids addition per-value serializer lookups.
public <W extends ObjectWriter> W writerFor(TypeReference<?> rootType)
ObjectWriter
that will
serialize objects using specified root type, instead of actual
runtime type of value. Type must be a super-type of runtime type.
Main reason for using this method is performance, as writer is able to pre-fetch serializer to use before write, and if writer is used more than once this avoids addition per-value serializer lookups.
public <W extends ObjectWriter> W writerFor(JavaType rootType)
ObjectWriter
that will
serialize objects using specified root type, instead of actual
runtime type of value. Type must be a super-type of runtime type.
Main reason for using this method is performance, as writer is able to pre-fetch serializer to use before write, and if writer is used more than once this avoids addition per-value serializer lookups.
@Deprecated public <W extends ObjectWriter> W writerWithType(Class<?> rootType)
writerFor(Class)
instead@Deprecated public <W extends ObjectWriter> W writerWithType(TypeReference<?> rootType)
writerFor(TypeReference)
instead@Deprecated public <W extends ObjectWriter> W writerWithType(JavaType rootType)
writerFor(JavaType)
insteadpublic <W extends ObjectWriter> W writer(PrettyPrinter pp)
ObjectWriter
that will
serialize objects using specified pretty printer for indentation
(or if null, no pretty printer)public <W extends ObjectWriter> W writerWithDefaultPrettyPrinter()
ObjectWriter
that will
serialize objects using the default pretty printer for indentationpublic <W extends ObjectWriter> W writer(FilterProvider filterProvider)
ObjectWriter
that will
serialize objects using specified filter provider.public <W extends ObjectWriter> W writer(FormatSchema schema)
ObjectWriter
that will
pass specific schema object to JsonGenerator
used for
writing content.schema
- Schema to pass to generatorpublic <W extends ObjectWriter> W writer(Base64Variant defaultBase64)
ObjectWriter
that will
use specified Base64 encoding variant for Base64-encoded binary data.public <W extends ObjectWriter> W writer(CharacterEscapes escapes)
ObjectReader
that will
use specified character escaping details for output.public <W extends ObjectWriter> W writer(ContextAttributes attrs)
ObjectWriter
that will
use specified default attributes.public <T extends ObjectReader> T reader()
ObjectReader
with
default settings. Note that the resulting instance is NOT usable as is,
without defining expected value type.public <T extends ObjectReader> T reader(DeserializationFeature feature)
ObjectReader
with
specified feature enabled (compared to settings that this
mapper instance has).
Note that the resulting instance is NOT usable as is,
without defining expected value type.public <T extends ObjectReader> T reader(DeserializationFeature first, DeserializationFeature... other)
ObjectReader
with
specified features enabled (compared to settings that this
mapper instance has).
Note that the resulting instance is NOT usable as is,
without defining expected value type.public <T extends ObjectReader> T readerForUpdating(Object valueToUpdate)
ObjectReader
that will
update given Object (usually Bean, but can be a Collection or Map
as well, but NOT an array) with JSON data. Deserialization occurs
normally except that the root-level value in JSON is not used for
instantiating a new object; instead give updateable object is used
as root.
Runtime type of value object is used for locating deserializer,
unless overridden by other factory methods of ObjectReader
public <T extends ObjectReader> T reader(JavaType type)
ObjectReader
that will
read or update instances of specified typepublic <T extends ObjectReader> T reader(Class<?> type)
ObjectReader
that will
read or update instances of specified typepublic <T extends ObjectReader> T reader(TypeReference<?> type)
ObjectReader
that will
read or update instances of specified typepublic <T extends ObjectReader> T reader(JsonNodeFactory f)
ObjectReader
that will
use specified JsonNodeFactory
for constructing JSON trees.public <T extends ObjectReader> T reader(FormatSchema schema)
ObjectReader
that will
pass specific schema object to JsonParser
used for
reading content.schema
- Schema to pass to parserpublic <T extends ObjectReader> T reader(InjectableValues injectableValues)
ObjectReader
that will
use specified injectable values.injectableValues
- Injectable values to usepublic <T extends ObjectReader> T readerWithView(Class<?> view)
ObjectReader
that will
deserialize objects using specified JSON View (filter).public <T extends ObjectReader> T reader(Base64Variant defaultBase64)
ObjectReader
that will
use specified Base64 encoding variant for Base64-encoded binary data.public <T extends ObjectReader> T reader(ContextAttributes attrs)
ObjectReader
that will
use specified default attributes.public <T> T convertValue(Object fromValue, Class<T> toValueType) throws IllegalArgumentException
IllegalArgumentException
- If conversion fails due to incompatible type;
if so, root cause will contain underlying checked exception data binding
functionality threwpublic <T> T convertValue(Object fromValue, TypeReference<?> toValueTypeRef) throws IllegalArgumentException
IllegalArgumentException
public <T> T convertValue(Object fromValue, JavaType toValueType) throws IllegalArgumentException
IllegalArgumentException
protected Object _convert(Object fromValue, JavaType toValueType) throws IllegalArgumentException
writeValue
and
readValue
methods.IllegalArgumentException
public JsonSchema generateJsonSchema(Class<?> t) throws JsonMappingException
t
- The class to generate schema forJsonMappingException
public void acceptJsonFormatVisitor(Class<?> type, JsonFormatVisitorWrapper visitor) throws JsonMappingException
This method can be used for things like generating Json Schema instance for specified type.
type
- Type to generate schema for (possibly with generic signature)JsonMappingException
public void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) throws JsonMappingException
Serializer
hierarchy and related properties
This method can be used for things like generating Json Schema instance for specified type.
type
- Type to generate schema for (possibly with generic signature)JsonMappingException
protected DefaultSerializerProvider _serializerProvider(SerializationConfig config)
SerializerProvider
to use for serialization.protected PrettyPrinter _defaultPrettyPrinter()
protected final void _configAndWriteValue(JsonGenerator jgen, Object value) throws IOException
IOException
protected final void _configAndWriteValue(JsonGenerator jgen, Object value, Class<?> viewClass) throws IOException
IOException
protected DefaultDeserializationContext createDeserializationContext(JsonParser jp, DeserializationConfig cfg)
DeserializationContext
for deserializing a single root value.
Can be overridden if a custom context is needed.protected Object _readValue(DeserializationConfig cfg, JsonParser jp, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
protected Object _readMapAndClose(JsonParser jp, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
protected JsonToken _initForReading(JsonParser p) throws IOException
IOException
- if the underlying input source has problems during
parsingJsonParseException
- if parser has problems parsing contentJsonMappingException
- if the parser does not have any more
content to map (note: Json "null" value is considered content;
enf-of-stream not)protected Object _unwrapAndDeserialize(JsonParser p, DeserializationContext ctxt, DeserializationConfig config, JavaType rootType, JsonDeserializer<Object> deser) throws IOException
IOException
protected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) throws JsonMappingException
JsonMappingException
protected void _verifySchemaType(FormatSchema schema)
Copyright © 2016 JBoss by Red Hat. All rights reserved.