public class ObjectMapper extends ObjectCodec implements Versioned
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 DeserializationConfig |
_deserializationConfig
Configuration object that defines basic global
settings for the serialization process
|
protected DeserializerProvider |
_deserializerProvider
Object that manages access to deserializers used for deserializing
JSON content into Java objects, including possible caching
of the deserializers.
|
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 ConcurrentHashMap<JavaType,JsonDeserializer<Object>> |
_rootDeserializers
We will use a separate main-level Map for keeping track
of root-level deserializers.
|
protected SerializationConfig |
_serializationConfig
Configuration object that defines basic global
settings for the serialization process
|
protected SerializerFactory |
_serializerFactory
Serializer factory used for constructing serializers.
|
protected SerializerProvider |
_serializerProvider
Object that manages access to serializers used for serialization,
including caching.
|
protected SubtypeResolver |
_subtypeResolver
Registered concrete subtypes that can be used instead of (or
in addition to) ones declared using annotations.
|
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 ClassIntrospector<? extends BeanDescription> |
DEFAULT_INTROSPECTOR |
protected static VisibilityChecker<?> |
STD_VISIBILITY_CHECKER |
Constructor and Description |
---|
ObjectMapper()
Default constructor, which will construct the default
JsonFactory as necessary, use
StdSerializerProvider as its
SerializerProvider , and
BeanSerializerFactory as its
SerializerFactory . |
ObjectMapper(JsonFactory jf)
Construct mapper that uses specified
JsonFactory
for constructing necessary JsonParser s and/or
JsonGenerator s. |
ObjectMapper(JsonFactory jf,
SerializerProvider sp,
DeserializerProvider dp) |
ObjectMapper(JsonFactory jf,
SerializerProvider sp,
DeserializerProvider dp,
SerializationConfig sconfig,
DeserializationConfig dconfig) |
ObjectMapper(SerializerFactory sf)
Deprecated.
Use other constructors instead; note that
you can just set serializer factory with
setSerializerFactory(org.codehaus.jackson.map.SerializerFactory) |
Modifier and Type | Method and Description |
---|---|
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) |
protected DeserializationContext |
_createDeserializationContext(JsonParser jp,
DeserializationConfig cfg) |
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(DeserializationConfig cfg,
JavaType valueType)
Method called to locate deserializer for the passed root-level value.
|
protected JsonToken |
_initForReading(JsonParser jp)
Method called to ensure that given parser is ready for reading
content for data binding.
|
protected Object |
_readMapAndClose(JsonParser jp,
JavaType valueType) |
protected Object |
_readValue(DeserializationConfig cfg,
JsonParser jp,
JavaType valueType)
Actual implementation of value reading+binding operation.
|
protected Object |
_unwrapAndDeserialize(JsonParser jp,
JavaType rootType,
DeserializationContext ctxt,
JsonDeserializer<Object> deser) |
boolean |
canDeserialize(JavaType type)
Method that can be called to check whether mapper thinks
it could deserialize an Object of given type.
|
boolean |
canSerialize(Class<?> type)
Method that can be called to check whether mapper thinks
it could serialize an instance of given Class.
|
ObjectMapper |
configure(DeserializationConfig.Feature 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
JsonFactory instance this object mapper uses. |
ObjectMapper |
configure(JsonParser.Feature f,
boolean state)
Method for changing state of an on/off
JsonParser feature for
JsonFactory instance this object mapper uses. |
ObjectMapper |
configure(SerializationConfig.Feature 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) |
DeserializationConfig |
copyDeserializationConfig()
Method that creates a copy of
the shared default
DeserializationConfig object
that defines configuration settings for deserialization. |
SerializationConfig |
copySerializationConfig()
Method that creates a copy of
the shared default
SerializationConfig object
that defines configuration settings for serialization. |
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)
|
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)
|
ObjectWriter |
defaultPrettyPrintingWriter()
Deprecated.
Since 1.9, use
writerWithDefaultPrettyPrinter() instead. |
ObjectMapper |
disable(DeserializationConfig.Feature... f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
disable(SerializationConfig.Feature... 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(DeserializationConfig.Feature... f)
Method for enabling specified
DeserializationConfig features. |
ObjectMapper |
enable(SerializationConfig.Feature... 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) |
ObjectWriter |
filteredWriter(FilterProvider filterProvider)
Deprecated.
Since 1.9, use
writer(FilterProvider) instead. |
JsonSchema |
generateJsonSchema(Class<?> t)
Generate Json-schema
instance for specified class.
|
JsonSchema |
generateJsonSchema(Class<?> t,
SerializationConfig cfg)
Generate Json-schema
instance for specified class, using specific
serialization configuration
|
DeserializationConfig |
getDeserializationConfig()
Method that returns
the shared default
DeserializationConfig object
that defines configuration settings for deserialization. |
DeserializerProvider |
getDeserializerProvider() |
JsonFactory |
getJsonFactory()
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. |
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. |
SerializationConfig |
getSerializationConfig()
Method that returns the shared default
SerializationConfig
object that defines configuration settings for serialization. |
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(DeserializationConfig.Feature f)
Convenience method, equivalent to:
|
boolean |
isEnabled(JsonGenerator.Feature f)
Convenience method, equivalent to:
|
boolean |
isEnabled(JsonParser.Feature f)
Convenience method, equivalent to:
|
boolean |
isEnabled(SerializationConfig.Feature f)
Convenience method, equivalent to:
|
ObjectWriter |
prettyPrintingWriter(PrettyPrinter pp)
Deprecated.
Since 1.9, use
writer(FilterProvider) instead. |
ObjectReader |
reader()
Factory method for constructing
ObjectReader with
default settings. |
ObjectReader |
reader(Class<?> type)
Factory method for constructing
ObjectReader that will
read or update instances of specified type |
ObjectReader |
reader(FormatSchema schema)
Factory method for constructing
ObjectReader that will
pass specific schema object to JsonParser used for
reading content. |
ObjectReader |
reader(InjectableValues injectableValues)
Factory method for constructing
ObjectReader that will
use specified injectable values. |
ObjectReader |
reader(JavaType type)
Factory method for constructing
ObjectReader that will
read or update instances of specified type |
ObjectReader |
reader(JsonNodeFactory f)
Factory method for constructing
ObjectReader that will
use specified JsonNodeFactory for constructing JSON trees. |
ObjectReader |
reader(TypeReference<?> type)
Factory method for constructing
ObjectReader that will
read or update instances of specified type |
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. |
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. |
JsonNode |
readTree(JsonParser jp)
Method to deserialize JSON content as tree expressed
using set of
JsonNode instances. |
JsonNode |
readTree(JsonParser jp,
DeserializationConfig cfg)
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) |
<T> T |
readValue(File src,
JavaType valueType) |
<T> T |
readValue(File src,
TypeReference valueTypeRef) |
<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(JsonNode root,
Class<T> valueType)
Convenience method for converting results from given JSON tree into given
value type.
|
<T> T |
readValue(JsonNode root,
JavaType valueType)
Convenience method for converting results from given JSON tree into given
value type.
|
<T> T |
readValue(JsonNode root,
TypeReference valueTypeRef)
Convenience method for converting results from given JSON tree into given
value type.
|
<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,
Class<T> valueType,
DeserializationConfig cfg)
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)
Method to deserialize JSON content into a Java type, reference
to which is passed as argument.
|
<T> T |
readValue(JsonParser jp,
JavaType valueType,
DeserializationConfig cfg)
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(JsonParser jp,
TypeReference<?> valueTypeRef,
DeserializationConfig cfg)
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) |
<T> T |
readValue(String content,
JavaType valueType) |
<T> T |
readValue(String content,
TypeReference valueTypeRef) |
<T> T |
readValue(URL src,
Class<T> valueType) |
<T> T |
readValue(URL src,
JavaType valueType) |
<T> T |
readValue(URL src,
TypeReference valueTypeRef) |
<T> MappingIterator<T> |
readValues(JsonParser jp,
Class<T> valueType)
Method for reading sequence of Objects from parser stream.
|
<T> MappingIterator<T> |
readValues(JsonParser jp,
JavaType 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.
|
void |
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.
|
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).
|
ObjectReader |
schemaBasedReader(FormatSchema schema)
Deprecated.
Since 1.9, use
reader(FormatSchema) instead. |
ObjectWriter |
schemaBasedWriter(FormatSchema schema)
Deprecated.
Since 1.9, use
writer(FilterProvider) instead. |
ObjectMapper |
setAnnotationIntrospector(AnnotationIntrospector ai)
Method for changing
AnnotationIntrospector used by this
mapper instance for both serialization and deserialization |
void |
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.
|
ObjectMapper |
setDeserializationConfig(DeserializationConfig cfg)
Method for replacing the shared default deserialization configuration
object.
|
ObjectMapper |
setDeserializerProvider(DeserializerProvider p)
Method for setting specific
DeserializerProvider to use
for handling caching of JsonDeserializer instances. |
void |
setFilters(FilterProvider filterProvider)
Convenience method that is equivalent to:
|
void |
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) |
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 |
setSerializationConfig(SerializationConfig cfg)
Method for replacing the shared default serialization configuration
object.
|
ObjectMapper |
setSerializationInclusion(JsonSerialize.Inclusion 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(SerializerProvider p)
Method for setting specific
SerializerProvider to use
for handling caching of JsonSerializer instances. |
void |
setSubtypeResolver(SubtypeResolver r)
Method for setting custom subtype resolver to use.
|
ObjectMapper |
setTypeFactory(TypeFactory f)
Method that can be used to override
TypeFactory instance
used by this mapper. |
ObjectMapper |
setVisibility(JsonMethod 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(JsonNode n)
Method for constructing a
JsonParser out of JSON tree
representation. |
<T> T |
treeToValue(JsonNode n,
Class<T> valueType)
Convenience conversion method that will bind data given JSON tree
contains into specific value (usually bean) type.
|
ObjectWriter |
typedWriter(Class<?> rootType)
Deprecated.
Since 1.9, use
writerWithType(Class) instead. |
ObjectWriter |
typedWriter(JavaType rootType)
Deprecated.
Since 1.9, use
writerWithType(JavaType) instead. |
ObjectWriter |
typedWriter(TypeReference<?> rootType)
Deprecated.
Since 1.9, use
writerWithType(TypeReference) instead. |
ObjectReader |
updatingReader(Object valueToUpdate)
Deprecated.
Since 1.9, use
readerForUpdating(java.lang.Object) instead. |
<T extends JsonNode> |
valueToTree(Object fromValue)
Reverse of
treeToValue(org.codehaus.jackson.JsonNode, 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.
|
ObjectWriter |
viewWriter(Class<?> serializationView)
Deprecated.
Since 1.9, use
writerWithView(Class) instead. |
ObjectMapper |
withModule(Module module)
Fluent-style alternative to
registerModule(org.codehaus.jackson.map.Module) ; functionally equivalent to: |
ObjectWriter |
writer()
Convenience method for constructing
ObjectWriter
with default settings. |
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. |
ObjectWriter |
writer(FilterProvider filterProvider)
Factory method for constructing
ObjectWriter that will
serialize objects using specified filter provider. |
ObjectWriter |
writer(FormatSchema schema)
Factory method for constructing
ObjectWriter that will
pass specific schema object to JsonGenerator used for
writing content. |
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) |
ObjectWriter |
writerWithDefaultPrettyPrinter()
Factory method for constructing
ObjectWriter that will
serialize objects using the default pretty printer for indentation |
ObjectWriter |
writerWithType(Class<?> rootType)
Factory method for constructing
ObjectWriter that will
serialize objects using specified root type, instead of actual
runtime type of value. |
ObjectWriter |
writerWithType(JavaType rootType)
Factory method for constructing
ObjectWriter that will
serialize objects using specified root type, instead of actual
runtime type of value. |
ObjectWriter |
writerWithType(TypeReference<?> rootType)
Factory method for constructing
ObjectWriter that will
serialize objects using specified root type, instead of actual
runtime type of value. |
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,
JsonNode rootNode,
SerializationConfig cfg)
Method to serialize given Json Tree, using generator
provided.
|
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(JsonGenerator jgen,
Object value,
SerializationConfig config)
Method that can be used to serialize any Java value as
JSON output, using provided
JsonGenerator ,
configured as per passed configuration object. |
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 ClassIntrospector<? extends BeanDescription> DEFAULT_INTROSPECTOR
protected static final AnnotationIntrospector DEFAULT_ANNOTATION_INTROSPECTOR
protected static final VisibilityChecker<?> STD_VISIBILITY_CHECKER
protected final JsonFactory _jsonFactory
JsonParser
and JsonGenerator
instances as necessary.protected SubtypeResolver _subtypeResolver
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 SerializationConfig _serializationConfig
protected SerializerProvider _serializerProvider
_serializerFactory
to allow
for constructing custom serializers.protected SerializerFactory _serializerFactory
protected DeserializationConfig _deserializationConfig
protected DeserializerProvider _deserializerProvider
DeserializerFactory
to use for constructing acutal deserializers.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
StdSerializerProvider
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.@Deprecated public ObjectMapper(SerializerFactory sf)
setSerializerFactory(org.codehaus.jackson.map.SerializerFactory)
SerializerFactory
for constructing necessary serializers.public ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp)
public ObjectMapper(JsonFactory jf, SerializerProvider sp, DeserializerProvider dp, SerializationConfig sconfig, DeserializationConfig dconfig)
jf
- JsonFactory to use: if null, a new MappingJsonFactory
will be constructedsp
- SerializerProvider to use: if null, a StdSerializerProvider
will be constructeddp
- DeserializerProvider to use: if null, a StdDeserializerProvider
will be constructedsconfig
- Serialization configuration to use; if null, basic SerializationConfig
will be constructeddconfig
- Deserialization configuration to use; if null, basic DeserializationConfig
will be constructedpublic Version version()
public void registerModule(Module module)
module
- Module to registerpublic ObjectMapper withModule(Module module)
registerModule(org.codehaus.jackson.map.Module)
; functionally equivalent to:
mapper.registerModule(module); return mapper;NOTE: name is unfortunately misleading in suggesting that a new instance might be created (as is the case with most other 'withXxx()' methods for Jackson core objects) -- this is not the case; rather, this is just a variant of
registerModule(org.codehaus.jackson.map.Module)
but one that returns 'this'
(like it should return, but does not for historical reasons).public SerializationConfig getSerializationConfig()
SerializationConfig
object that defines configuration settings for serialization.
Returned object is "live" meaning that changes will be used
for future serialization operations for this mapper when using
mapper's default configurationpublic SerializationConfig copySerializationConfig()
SerializationConfig
object
that defines configuration settings for serialization.
Since it is a copy, any changes made to the configuration
object will NOT directly affect serialization done using
basic serialization methods that use the shared object (that is,
ones that do not take separate SerializationConfig
argument.
The use case is that of changing object settings of the configuration
(like date format being used, see SerializationConfig.setDateFormat(java.text.DateFormat)
).
public ObjectMapper setSerializationConfig(SerializationConfig cfg)
public DeserializationConfig getDeserializationConfig()
DeserializationConfig
object
that defines configuration settings for deserialization.
Returned object is "live" meaning that changes will be used
for future deserialization operations for this mapper when using
mapper's default configurationpublic DeserializationConfig copyDeserializationConfig()
DeserializationConfig
object
that defines configuration settings for deserialization.
Since it is a copy, any changes made to the configuration
object will NOT directly affect deserialization done using
basic deserialization methods that use the shared object (that is,
ones that do not take separate DeserializationConfig
argument.
The use case is that of changing object settings of the configuration
(like deserialization problem handler,
see DeserializationConfig.addHandler(org.codehaus.jackson.map.DeserializationProblemHandler)
)
public ObjectMapper setDeserializationConfig(DeserializationConfig cfg)
public ObjectMapper setSerializerFactory(SerializerFactory f)
SerializerFactory
to use
for constructing (bean) serializers.public ObjectMapper setSerializerProvider(SerializerProvider p)
SerializerProvider
to use
for handling caching of JsonSerializer
instances.public SerializerProvider getSerializerProvider()
public ObjectMapper setDeserializerProvider(DeserializerProvider p)
DeserializerProvider
to use
for handling caching of JsonDeserializer
instances.public DeserializerProvider getDeserializerProvider()
public VisibilityChecker<?> getVisibilityChecker()
public void setVisibilityChecker(VisibilityChecker<?> vc)
public ObjectMapper setVisibility(JsonMethod 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 void setSubtypeResolver(SubtypeResolver r)
public ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai)
AnnotationIntrospector
used by this
mapper instance for both serialization and deserializationpublic ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s)
public ObjectMapper setSerializationInclusion(JsonSerialize.Inclusion incl)
mapper.setSerializationConfig(mapper.getSerializationConfig().withSerializationInclusion(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
).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 ObjectMapper setNodeFactory(JsonNodeFactory f)
JsonNodeFactory
to use for
constructing root level tree nodes (via method
createObjectNode()
public void setFilters(FilterProvider filterProvider)
mapper.setFilters(mapper.getSerializationConfig().withFilters(filterProvider));
Note that usually it is better to use method filteredWriter(org.codehaus.jackson.map.ser.FilterProvider)
; however, sometimes
this method is more convenient. For example, some frameworks only allow configuring
of ObjectMapper instances and not ObjectWriters.
public JsonFactory getJsonFactory()
JsonFactory
that this
mapper uses if it needs to construct JsonParser
s
and/or JsonGenerator
s.JsonFactory
that this mapper uses when it needs to
construct Json parser and generatorspublic void 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 void 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)
public ObjectMapper configure(SerializationConfig.Feature f, boolean state)
This is method is basically a shortcut method for calling
SerializationConfig.set(org.codehaus.jackson.map.SerializationConfig.Feature, boolean)
on the shared SerializationConfig
object with given arguments.
public ObjectMapper configure(DeserializationConfig.Feature f, boolean state)
This is method is basically a shortcut method for calling
DeserializationConfig.set(org.codehaus.jackson.map.DeserializationConfig.Feature, boolean)
on the shared DeserializationConfig
object with given arguments.
public ObjectMapper configure(JsonParser.Feature f, boolean state)
JsonParser
feature for
JsonFactory
instance this object mapper uses.
This is method is basically a shortcut method for calling
JsonFactory.setParserFeature(org.codehaus.jackson.JsonParser.Feature, boolean)
on the shared
JsonFactory
this mapper uses (which is accessible
using getJsonFactory()
).
public ObjectMapper configure(JsonGenerator.Feature f, boolean state)
JsonGenerator
feature for
JsonFactory
instance this object mapper uses.
This is method is basically a shortcut method for calling
JsonFactory.setGeneratorFeature(org.codehaus.jackson.JsonGenerator.Feature, boolean)
on the shared
JsonFactory
this mapper uses (which is accessible
using getJsonFactory()
).
public ObjectMapper enable(DeserializationConfig.Feature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper disable(DeserializationConfig.Feature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper enable(SerializationConfig.Feature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public ObjectMapper disable(SerializationConfig.Feature... f)
DeserializationConfig
features.
Modifies and returns this instance; no new object is created.public boolean isEnabled(SerializationConfig.Feature f)
getSerializationConfig().isEnabled(f);
public boolean isEnabled(DeserializationConfig.Feature f)
getDeserializationConfig().isEnabled(f);
public boolean isEnabled(JsonParser.Feature f)
getJsonFactory().isEnabled(f);
public boolean isEnabled(JsonGenerator.Feature f)
getJsonFactory().isEnabled(f);
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 <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
JsonParseException
JsonMappingException
public <T> T readValue(JsonParser jp, TypeReference<?> valueTypeRef) throws IOException, JsonParseException, JsonMappingException
readValue
in class ObjectCodec
IOException
JsonParseException
JsonMappingException
public <T> T readValue(JsonParser jp, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
TypeFactory
.readValue
in class ObjectCodec
IOException
JsonParseException
JsonMappingException
public JsonNode 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
IOException
JsonProcessingException
public <T> MappingIterator<T> readValues(JsonParser jp, JavaType valueType) throws IOException, JsonProcessingException
Note that ObjectReader
has more complete set of variants.
readValues
in class ObjectCodec
IOException
JsonProcessingException
public <T> MappingIterator<T> readValues(JsonParser jp, Class<T> valueType) throws IOException, JsonProcessingException
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 <T> T readValue(JsonParser jp, Class<T> valueType, DeserializationConfig cfg) 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.
cfg
- Specific deserialization configuration to use for
this operation. Note that not all config settings can
be changed on per-operation basis: some changeds only take effect
before calling the operation for the first time (for the mapper
instance)IOException
JsonParseException
JsonMappingException
public <T> T readValue(JsonParser jp, TypeReference<?> valueTypeRef, DeserializationConfig cfg) throws IOException, JsonParseException, JsonMappingException
cfg
- Specific deserialization configuration to use for
this operation. Note that not all config settings can
be changed on per-operation basis: some changeds only take effect
before calling the operation for the first time (for the mapper
instance)IOException
JsonParseException
JsonMappingException
public <T> T readValue(JsonParser jp, JavaType valueType, DeserializationConfig cfg) throws IOException, JsonParseException, JsonMappingException
TypeFactory
.cfg
- Specific deserialization configuration to use for
this operation. Note that not all config settings can
be changed on per-operation basis: some changeds only take effect
before calling the operation for the first time (for the mapper
instance)IOException
JsonParseException
JsonMappingException
public JsonNode readTree(JsonParser jp, DeserializationConfig cfg) 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).cfg
- Specific deserialization configuration to use for
this operation. Note that not all config settings can
be changed on per-operation basis: some changeds only take effect
before calling the operation for the first time (for the mapper
instance)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).in
- Input stream used to read JSON content
for building the JSON tree.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).r
- Reader used to read JSON content
for building the JSON tree.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).content
- JSON content to parse to build the JSON tree.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.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 instanceIOException
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 instanceIOException
JsonProcessingException
public void writeValue(JsonGenerator jgen, Object value) throws IOException, JsonGenerationException, JsonMappingException
JsonGenerator
.writeValue
in class ObjectCodec
IOException
JsonGenerationException
JsonMappingException
public void writeValue(JsonGenerator jgen, Object value, SerializationConfig config) throws IOException, JsonGenerationException, JsonMappingException
JsonGenerator
,
configured as per passed configuration object.IOException
JsonGenerationException
JsonMappingException
public void writeTree(JsonGenerator jgen, JsonNode rootNode) throws IOException, JsonProcessingException
writeTree
in class ObjectCodec
IOException
JsonProcessingException
public void writeTree(JsonGenerator jgen, JsonNode rootNode, SerializationConfig cfg) 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(JsonNode 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(JsonNode n, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
Equivalent to:
objectMapper.convertValue(n, valueClass);
treeToValue
in class ObjectCodec
IOException
JsonParseException
JsonMappingException
public <T extends JsonNode> T valueToTree(Object fromValue) throws IllegalArgumentException
treeToValue(org.codehaus.jackson.JsonNode, java.lang.Class<T>)
; given a value (usually bean), will
construct equivalent JSON Tree representation. Functionally same
as if serializing value into JSON and parsing JSON as tree, but
more efficient.T
- Actual node type; usually either basic JsonNode
or
ObjectNode
fromValue
- Bean value to convertIllegalArgumentException
public boolean canSerialize(Class<?> type)
public boolean canDeserialize(JavaType type)
public <T> T readValue(File src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(File src, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(File src, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(URL src, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(URL src, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
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
public <T> T readValue(String content, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(String content, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
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
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
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
IOException
JsonParseException
JsonMappingException
public <T> T readValue(byte[] src, int offset, int len, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
public <T> T readValue(JsonNode root, Class<T> valueType) throws IOException, JsonParseException, JsonMappingException
mapper.readValue(mapper.treeAsTokens(root), valueType);
IOException
JsonParseException
JsonMappingException
public <T> T readValue(JsonNode root, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException
mapper.readValue(mapper.treeAsTokens(root), valueType);
IOException
JsonParseException
JsonMappingException
public <T> T readValue(JsonNode root, JavaType valueType) throws IOException, JsonParseException, JsonMappingException
mapper.readValue(mapper.treeAsTokens(root), valueType);
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 IOException, JsonGenerationException, JsonMappingException
writeValue(Writer,Object)
with StringWriter
and constructing String, but more efficient.IOException
JsonGenerationException
JsonMappingException
public byte[] writeValueAsBytes(Object value) throws IOException, JsonGenerationException, JsonMappingException
writeValue(Writer,Object)
with ByteArrayOutputStream
and getting bytes, but more efficient.
Encoding used will be UTF-8.IOException
JsonGenerationException
JsonMappingException
public ObjectWriter writer()
ObjectWriter
with default settings.public ObjectWriter writer(DateFormat df)
ObjectWriter
that will
serialize objects using specified DateFormat
; or, if
null passed, using timestamp (64-bit number.public ObjectWriter writerWithView(Class<?> serializationView)
ObjectWriter
that will
serialize objects using specified JSON View (filter).public ObjectWriter writerWithType(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.public ObjectWriter writerWithType(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.public ObjectWriter writerWithType(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.public ObjectWriter writer(PrettyPrinter pp)
ObjectWriter
that will
serialize objects using specified pretty printer for indentation
(or if null, no pretty printer)public ObjectWriter writerWithDefaultPrettyPrinter()
ObjectWriter
that will
serialize objects using the default pretty printer for indentationpublic ObjectWriter writer(FilterProvider filterProvider)
ObjectWriter
that will
serialize objects using specified filter provider.public ObjectWriter writer(FormatSchema schema)
ObjectWriter
that will
pass specific schema object to JsonGenerator
used for
writing content.schema
- Schema to pass to generator@Deprecated public ObjectWriter typedWriter(Class<?> rootType)
writerWithType(Class)
instead.@Deprecated public ObjectWriter typedWriter(JavaType rootType)
writerWithType(JavaType)
instead.@Deprecated public ObjectWriter typedWriter(TypeReference<?> rootType)
writerWithType(TypeReference)
instead.@Deprecated public ObjectWriter viewWriter(Class<?> serializationView)
writerWithView(Class)
instead.@Deprecated public ObjectWriter prettyPrintingWriter(PrettyPrinter pp)
writer(FilterProvider)
instead.@Deprecated public ObjectWriter defaultPrettyPrintingWriter()
writerWithDefaultPrettyPrinter()
instead.@Deprecated public ObjectWriter filteredWriter(FilterProvider filterProvider)
writer(FilterProvider)
instead.@Deprecated public ObjectWriter schemaBasedWriter(FormatSchema schema)
writer(FilterProvider)
instead.public ObjectReader reader()
ObjectReader
with
default settings. Note that the resulting instance is NOT usable as is,
without defining expected value type.public ObjectReader 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 ObjectReader reader(JavaType type)
ObjectReader
that will
read or update instances of specified typepublic ObjectReader reader(Class<?> type)
ObjectReader
that will
read or update instances of specified typepublic ObjectReader reader(TypeReference<?> type)
ObjectReader
that will
read or update instances of specified typepublic ObjectReader reader(JsonNodeFactory f)
ObjectReader
that will
use specified JsonNodeFactory
for constructing JSON trees.public ObjectReader reader(FormatSchema schema)
ObjectReader
that will
pass specific schema object to JsonParser
used for
reading content.schema
- Schema to pass to parserpublic ObjectReader reader(InjectableValues injectableValues)
ObjectReader
that will
use specified injectable values.injectableValues
- Injectable values to use@Deprecated public ObjectReader updatingReader(Object valueToUpdate)
readerForUpdating(java.lang.Object)
instead.@Deprecated public ObjectReader schemaBasedReader(FormatSchema schema)
reader(FormatSchema)
instead.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
IllegalArgumentException
public JsonSchema generateJsonSchema(Class<?> t) throws JsonMappingException
t
- The class to generate schema forJsonMappingException
public JsonSchema generateJsonSchema(Class<?> t, SerializationConfig cfg) throws JsonMappingException
t
- The class to generate schema forJsonMappingException
protected PrettyPrinter _defaultPrettyPrinter()
protected final void _configAndWriteValue(JsonGenerator jgen, Object value) throws IOException, JsonGenerationException, JsonMappingException
protected final void _configAndWriteValue(JsonGenerator jgen, Object value, Class<?> viewClass) throws IOException, JsonGenerationException, JsonMappingException
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 jp) throws IOException, JsonParseException, JsonMappingException
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 jp, JavaType rootType, DeserializationContext ctxt, JsonDeserializer<Object> deser) throws IOException, JsonParseException, JsonMappingException
protected JsonDeserializer<Object> _findRootDeserializer(DeserializationConfig cfg, JavaType valueType) throws JsonMappingException
JsonMappingException
protected DeserializationContext _createDeserializationContext(JsonParser jp, DeserializationConfig cfg)