Class ObjectMapper
- java.lang.Object
-
- com.fasterxml.jackson.core.TreeCodec
-
- com.fasterxml.jackson.core.ObjectCodec
-
- com.fasterxml.jackson.databind.ObjectMapper
-
- All Implemented Interfaces:
Versioned
,java.io.Serializable
- Direct Known Subclasses:
JsonMapper
public class ObjectMapper extends ObjectCodec implements Versioned, java.io.Serializable
ObjectMapper provides functionality for reading and writing JSON, either to and from basic POJOs (Plain Old Java Objects), or to and from a general-purpose JSON Tree Model (JsonNode
), as well as related functionality for performing conversions. It is also highly customizable to work both with different styles of JSON content, and to support more advanced Object concepts such as polymorphism and Object identity.ObjectMapper
also acts as a factory for more advancedObjectReader
andObjectWriter
classes. Mapper (andObjectReader
s,ObjectWriter
s it constructs) will use instances ofJsonParser
andJsonGenerator
for implementing actual reading/writing of JSON. Note that although most read and write methods are exposed through this class, some of the functionality is only exposed viaObjectReader
andObjectWriter
: specifically, reading/writing of longer sequences of values is only available throughObjectReader.readValues(InputStream)
andObjectWriter.writeValues(OutputStream)
.Simplest usage is of form:
final ObjectMapper mapper = new ObjectMapper(); // can use static singleton, inject: just make sure to reuse! MyValue value = new MyValue(); // ... and configure File newState = new File("my-stuff.json"); mapper.writeValue(newState, value); // writes JSON serialization of MyValue instance // or, read MyValue older = mapper.readValue(new File("my-older-stuff.json"), MyValue.class); // Or if you prefer JSON Tree representation: JsonNode root = mapper.readTree(newState); // and find values by, for example, using a
JsonPointer
expression: int age = root.at("/personal/age").getValueAsInt();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. Usage viaObjectCodec
is, however, usually only for cases where dependency toObjectMapper
is either not possible (from Streaming API), or undesireable (when only relying on Streaming API).Mapper instances are fully thread-safe provided that ALL configuration of the instance occurs before ANY read or write calls. If configuration of a mapper instance is modified after first usage, changes may or may not take effect, and configuration calls themselves may fail. If you need to use different configuration, you have two main possibilities:
- Construct and use
ObjectReader
for reading,ObjectWriter
for writing. Both types are fully immutable and you can freely create new instances with different configuration using either factory methods ofObjectMapper
, or readers/writers themselves. Construction of newObjectReader
s andObjectWriter
s is a very light-weight operation so it is usually appropriate to create these on per-call basis, as needed, for configuring things like optional indentation of JSON. - If the specific kind of configurability is not available via
ObjectReader
andObjectWriter
, you may need to use multipleObjectMapper
instead (for example: you cannot change mix-in annotations on-the-fly; or, set of custom (de)serializers). To help with this usage, you may want to use methodcopy()
which creates a clone of the mapper with specific configuration, and allows configuration of the copied instance before it gets used. Note thatcopy()
operation is as expensive as constructing a newObjectMapper
instance: if possible, you should still pool and reuse mappers if you intend to use them for multiple operations.
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).
Notes on security: use "default typing" feature (see
enableDefaultTyping()
) is a potential security risk, if used with untrusted content (content generated by untrusted external parties). If so, you may want to construct a customTypeResolverBuilder
implementation to limit possible types to instantiate, (usingsetDefaultTyping(com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder<?>)
).- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ObjectMapper.DefaultTypeResolverBuilder
CustomizedTypeResolverBuilder
that provides type resolver builders used with so-called "default typing" (seeactivateDefaultTyping(PolymorphicTypeValidator)
for details).static class
ObjectMapper.DefaultTyping
Enumeration used withactivateDefaultTyping(PolymorphicTypeValidator)
to specify what kind of types (classes) default typing should be used for.
-
Constructor Summary
Constructors Constructor Description ObjectMapper()
Default constructor, which will construct the defaultJsonFactory
as necessary, useSerializerProvider
as itsSerializerProvider
, andBeanSerializerFactory
as itsSerializerFactory
.ObjectMapper(JsonFactory jf)
Constructs instance that uses specifiedJsonFactory
for constructing necessaryJsonParser
s and/orJsonGenerator
s.ObjectMapper(JsonFactory jf, DefaultSerializerProvider sp, DefaultDeserializationContext dc)
Constructs instance that uses specifiedJsonFactory
for constructing necessaryJsonParser
s and/orJsonGenerator
s, and uses given providers for accessing serializers and deserializers.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor)
Method for visiting type hierarchy for given type, using specified visitor.void
acceptJsonFormatVisitor(java.lang.Class<?> type, JsonFormatVisitorWrapper visitor)
Method for visiting type hierarchy for given type, using specified visitor.ObjectMapper
activateDefaultTyping(PolymorphicTypeValidator ptv)
Convenience method that is equivalent to callingObjectMapper
activateDefaultTyping(PolymorphicTypeValidator ptv, ObjectMapper.DefaultTyping applicability)
Convenience method that is equivalent to callingObjectMapper
activateDefaultTyping(PolymorphicTypeValidator ptv, ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs)
Method for enabling automatic inclusion of type information ("Default Typing"), needed for proper deserialization of polymorphic types (unless types have been annotated withJsonTypeInfo
).ObjectMapper
activateDefaultTypingAsProperty(PolymorphicTypeValidator ptv, ObjectMapper.DefaultTyping applicability, java.lang.String propertyName)
Method for enabling automatic inclusion of type information ("Default Typing") -- needed for proper deserialization of polymorphic types (unless types have been annotated withJsonTypeInfo
) -- 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
addHandler(DeserializationProblemHandler h)
Method for adding specifiedDeserializationProblemHandler
to be used for handling specific problems during deserialization.ObjectMapper
addMixIn(java.lang.Class<?> target, java.lang.Class<?> mixinSource)
Method to use for adding mix-in annotations to use for augmenting specified class or interface.void
addMixInAnnotations(java.lang.Class<?> target, java.lang.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, java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)
Method similar tocanDeserialize(JavaType)
but that can return actualThrowable
that was thrown when trying to construct serializer: this may be useful in figuring out what the actual problem is.boolean
canSerialize(java.lang.Class<?> type)
Method that can be called to check whether mapper thinks it could serialize an instance of given Class.boolean
canSerialize(java.lang.Class<?> type, java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)
Method similar tocanSerialize(Class)
but that can return actualThrowable
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 registeredDeserializationProblemHandler
s instances from this mapper.MutableCoercionConfig
coercionConfigDefaults()
Accessor forMutableCoercionConfig
through which default (fallback) coercion configurations can be changed.MutableCoercionConfig
coercionConfigFor(LogicalType logicalType)
Accessor forMutableCoercionConfig
through which coercion configuration for specified logical target type can be set.MutableCoercionConfig
coercionConfigFor(java.lang.Class<?> physicalType)
Accessor forMutableCoercionConfig
through which coercion configuration for specified physical target type can be set.MutableConfigOverride
configOverride(java.lang.Class<?> type)
Accessor for getting a mutable configuration override object for given type, needed to add or change per-type overrides applied to properties of given type.ObjectMapper
configure(JsonGenerator.Feature f, boolean state)
Method for changing state of an on/offJsonGenerator
feature for generator instances this object mapper creates.ObjectMapper
configure(JsonParser.Feature f, boolean state)
Method for changing state of specifiedJsonParser.Feature
s for parser instances this object mapper creates.ObjectMapper
configure(DeserializationFeature f, boolean state)
Method for changing state of an on/off deserialization feature for this object mapper.ObjectMapper
configure(MapperFeature f, boolean state)
Deprecated.Since 2.13 useJsonMapper.builder().configure(...)
ObjectMapper
configure(SerializationFeature f, boolean state)
Method for changing state of an on/off serialization feature for this object mapper.JavaType
constructType(TypeReference<?> typeRef)
Convenience method for constructingJavaType
out of given type reference.JavaType
constructType(java.lang.reflect.Type t)
Convenience method for constructingJavaType
out of given type (typicallyjava.lang.Class
), but without explicit context.<T> T
convertValue(java.lang.Object fromValue, TypeReference<T> toValueTypeRef)
<T> T
convertValue(java.lang.Object fromValue, JavaType toValueType)
<T> T
convertValue(java.lang.Object fromValue, java.lang.Class<T> toValueType)
Convenience method for doing two-step conversion from given value, into instance of given value type, by writing value into temporary buffer and reading from the buffer into specified target type.ObjectMapper
copy()
Method for creating a newObjectMapper
instance that has same initial configuration as this instance.ArrayNode
createArrayNode()
Note: return type is co-variant, as basic ObjectCodec abstraction cannot refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)JsonGenerator
createGenerator(java.io.DataOutput out)
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedDataOutput
.JsonGenerator
createGenerator(java.io.File outputFile, JsonEncoding enc)
Factory method for constructing properly initializedJsonGenerator
to write content to specifiedFile
, using specified encoding.JsonGenerator
createGenerator(java.io.OutputStream out)
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedOutputStream
.JsonGenerator
createGenerator(java.io.OutputStream out, JsonEncoding enc)
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedOutputStream
and encoding.JsonGenerator
createGenerator(java.io.Writer w)
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedWriter
.JsonParser
createNonBlockingByteArrayParser()
Factory method for constructing properly initializedJsonParser
to read content using non-blocking (asynchronous) mode.ObjectNode
createObjectNode()
Note: return type is co-variant, as basic ObjectCodec abstraction cannot refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)JsonParser
createParser(byte[] content)
Factory method for constructing properly initializedJsonParser
to read content from specified byte array.JsonParser
createParser(byte[] content, int offset, int len)
Factory method for constructing properly initializedJsonParser
to read content from specified byte array.JsonParser
createParser(char[] content)
Factory method for constructing properly initializedJsonParser
to read content from specified character array Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.JsonParser
createParser(char[] content, int offset, int len)
Factory method for constructing properly initializedJsonParser
to read content from specified character array.JsonParser
createParser(java.io.DataInput content)
Factory method for constructing properly initializedJsonParser
to read content using specifiedDataInput
.JsonParser
createParser(java.io.File src)
Factory method for constructing properly initializedJsonParser
to read content from specifiedFile
.JsonParser
createParser(java.io.InputStream in)
Factory method for constructing properly initializedJsonParser
to read content using specifiedInputStream
.JsonParser
createParser(java.io.Reader r)
Factory method for constructing properly initializedJsonParser
to read content using specifiedReader
.JsonParser
createParser(java.lang.String content)
Factory method for constructing properly initializedJsonParser
to read content from specified String.JsonParser
createParser(java.net.URL src)
Factory method for constructing properly initializedJsonParser
to read content from specifiedFile
.ObjectMapper
deactivateDefaultTyping()
Method for disabling automatic inclusion of type information; if so, only explicitly annotated types (ones withJsonTypeInfo
) will have additional embedded type information.ObjectMapper
disable(JsonGenerator.Feature... features)
Method for disabling specifiedJsonGenerator.Feature
s for parser instances this object mapper creates.ObjectMapper
disable(JsonParser.Feature... features)
Method for disabling specifiedJsonParser.Feature
s for parser instances this object mapper creates.ObjectMapper
disable(DeserializationFeature feature)
Method for enabling specifiedDeserializationConfig
features.ObjectMapper
disable(DeserializationFeature first, DeserializationFeature... f)
Method for enabling specifiedDeserializationConfig
features.ObjectMapper
disable(MapperFeature... f)
Deprecated.Since 2.13 useJsonMapper.builder().disable(...)
ObjectMapper
disable(SerializationFeature f)
Method for enabling specifiedDeserializationConfig
features.ObjectMapper
disable(SerializationFeature first, SerializationFeature... f)
Method for enabling specifiedDeserializationConfig
features.ObjectMapper
disableDefaultTyping()
Deprecated.Since 2.10 usedeactivateDefaultTyping()
insteadObjectMapper
enable(JsonGenerator.Feature... features)
Method for enabling specifiedJsonGenerator.Feature
s for parser instances this object mapper creates.ObjectMapper
enable(JsonParser.Feature... features)
Method for enabling specifiedJsonParser.Feature
s for parser instances this object mapper creates.ObjectMapper
enable(DeserializationFeature feature)
Method for enabling specifiedDeserializationConfig
features.ObjectMapper
enable(DeserializationFeature first, DeserializationFeature... f)
Method for enabling specifiedDeserializationConfig
features.ObjectMapper
enable(MapperFeature... f)
Deprecated.Since 2.13 useJsonMapper.builder().enable(...)
ObjectMapper
enable(SerializationFeature f)
Method for enabling specifiedDeserializationConfig
feature.ObjectMapper
enable(SerializationFeature first, SerializationFeature... f)
Method for enabling specifiedDeserializationConfig
features.ObjectMapper
enableDefaultTyping()
Deprecated.Since 2.10 useactivateDefaultTyping(PolymorphicTypeValidator)
insteadObjectMapper
enableDefaultTyping(ObjectMapper.DefaultTyping dti)
Deprecated.Since 2.10 useactivateDefaultTyping(PolymorphicTypeValidator,DefaultTyping)
insteadObjectMapper
enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs)
Deprecated.Since 2.10 useactivateDefaultTyping(PolymorphicTypeValidator,DefaultTyping,JsonTypeInfo.As)
insteadObjectMapper
enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, java.lang.String propertyName)
Deprecated.Since 2.10 useactivateDefaultTypingAsProperty(PolymorphicTypeValidator,DefaultTyping,String)
insteadObjectMapper
findAndRegisterModules()
Convenience method that is functionally equivalent to:mapper.registerModules(mapper.findModules());
java.lang.Class<?>
findMixInClassFor(java.lang.Class<?> cls)
static java.util.List<Module>
findModules()
Method for locating available methods, using JDKServiceLoader
facility, along with module-provided SPI.static java.util.List<Module>
findModules(java.lang.ClassLoader classLoader)
Method for locating available methods, using JDKServiceLoader
facility, along with module-provided SPI.JsonSchema
generateJsonSchema(java.lang.Class<?> t)
Deprecated.Since 2.6 use external JSON Schema generator (https://github.com/FasterXML/jackson-module-jsonSchema) (which under the hood callsacceptJsonFormatVisitor(JavaType, JsonFormatVisitorWrapper)
)java.text.DateFormat
getDateFormat()
DeserializationConfig
getDeserializationConfig()
Method that returns the shared defaultDeserializationConfig
object that defines configuration settings for deserialization.DeserializationContext
getDeserializationContext()
Method for getting currentDeserializationContext
.JsonFactory
getFactory()
Accessor for finding underlying data format factory (JsonFactory
) codec will use for data binding.InjectableValues
getInjectableValues()
JsonNodeFactory
getNodeFactory()
Method that can be used to get hold ofJsonNodeFactory
that this mapper will use when directly constructing rootJsonNode
instances for Trees.PolymorphicTypeValidator
getPolymorphicTypeValidator()
Accessor for configuredPolymorphicTypeValidator
used for validating polymorphic subtypes used with explicit polymorphic types (annotation-based), but NOT one with "default typing" (seeactivateDefaultTyping(PolymorphicTypeValidator)
for details).PropertyNamingStrategy
getPropertyNamingStrategy()
java.util.Set<java.lang.Object>
getRegisteredModuleIds()
The set ofModule
typeIds that are registered in this ObjectMapper, if (and only if!)MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS
is enabled AND module being added returns non-null
value for itsModule.getTypeId()
.SerializationConfig
getSerializationConfig()
Method that returns the shared defaultSerializationConfig
object that defines configuration settings for serialization.SerializerFactory
getSerializerFactory()
Method for getting currentSerializerFactory
.SerializerProvider
getSerializerProvider()
Accessor for the "blueprint" (or, factory) instance, from which instances are created by callingDefaultSerializerProvider.createInstance(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory)
.SerializerProvider
getSerializerProviderInstance()
Accessor for constructing and returning aSerializerProvider
instance that may be used for accessing serializers.SubtypeResolver
getSubtypeResolver()
Method for accessing subtype resolver in use.TypeFactory
getTypeFactory()
Accessor for getting currently configuredTypeFactory
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(JsonFactory.Feature f)
Convenience method, equivalent to:boolean
isEnabled(JsonGenerator.Feature f)
boolean
isEnabled(JsonParser.Feature f)
boolean
isEnabled(StreamReadFeature f)
boolean
isEnabled(StreamWriteFeature f)
boolean
isEnabled(DeserializationFeature f)
Method for checking whether given deserialization-specific feature is enabled.boolean
isEnabled(MapperFeature f)
Method for checking whether givenMapperFeature
is enabled.boolean
isEnabled(SerializationFeature f)
Method for checking whether given serialization-specific feature is enabled.JsonNode
missingNode()
int
mixInCount()
JsonNode
nullNode()
ObjectReader
reader()
Factory method for constructingObjectReader
with default settings.ObjectReader
reader(Base64Variant defaultBase64)
Factory method for constructingObjectReader
that will use specified Base64 encoding variant for Base64-encoded binary data.ObjectReader
reader(FormatSchema schema)
Factory method for constructingObjectReader
that will pass specific schema object toJsonParser
used for reading content.ObjectReader
reader(TypeReference<?> type)
Deprecated.Since 2.5, usereaderFor(TypeReference)
insteadObjectReader
reader(ContextAttributes attrs)
Factory method for constructingObjectReader
that will use specified default attributes.ObjectReader
reader(DeserializationFeature feature)
Factory method for constructingObjectReader
with specified feature enabled (compared to settings that this mapper instance has).ObjectReader
reader(DeserializationFeature first, DeserializationFeature... other)
Factory method for constructingObjectReader
with specified features enabled (compared to settings that this mapper instance has).ObjectReader
reader(InjectableValues injectableValues)
Factory method for constructingObjectReader
that will use specified injectable values.ObjectReader
reader(JavaType type)
Deprecated.Since 2.5, usereaderFor(JavaType)
insteadObjectReader
reader(JsonNodeFactory f)
Factory method for constructingObjectReader
that will use specifiedJsonNodeFactory
for constructing JSON trees.ObjectReader
reader(java.lang.Class<?> type)
Deprecated.Since 2.5, usereaderFor(Class)
insteadObjectReader
readerFor(TypeReference<?> type)
Factory method for constructingObjectReader
that will read or update instances of specified typeObjectReader
readerFor(JavaType type)
Factory method for constructingObjectReader
that will read or update instances of specified typeObjectReader
readerFor(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read or update instances of specified typeObjectReader
readerForArrayOf(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read values of a typeList<type>
.ObjectReader
readerForListOf(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read or update instances of a typeList<type>
.ObjectReader
readerForMapOf(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read or update instances of a typeMap<String, type>
Functionally same as:ObjectReader
readerForUpdating(java.lang.Object valueToUpdate)
Factory method for constructingObjectReader
that will update given Object (usually Bean, but can be a Collection or Map as well, but NOT an array) with JSON data.ObjectReader
readerWithView(java.lang.Class<?> view)
Factory method for constructingObjectReader
that will deserialize objects using specified JSON View (filter).JsonNode
readTree(byte[] content)
Same asreadTree(InputStream)
except content read from passed-in byte array.JsonNode
readTree(byte[] content, int offset, int len)
Same asreadTree(InputStream)
except content read from passed-in byte array.<T extends TreeNode>
TreadTree(JsonParser p)
Method to deserialize JSON content as a treeJsonNode
.JsonNode
readTree(java.io.File file)
Same asreadTree(InputStream)
except content read from passed-inFile
.JsonNode
readTree(java.io.InputStream in)
Method to deserialize JSON content as tree expressed using set ofJsonNode
instances.JsonNode
readTree(java.io.Reader r)
Same asreadTree(InputStream)
except content accessed through passed-inReader
JsonNode
readTree(java.lang.String content)
Same asreadTree(InputStream)
except content read from passed-inString
JsonNode
readTree(java.net.URL source)
Same asreadTree(InputStream)
except content read from passed-inURL
.<T> T
readValue(byte[] src, int offset, int len, TypeReference<T> valueTypeRef)
<T> T
readValue(byte[] src, int offset, int len, JavaType valueType)
<T> T
readValue(byte[] src, int offset, int len, java.lang.Class<T> valueType)
<T> T
readValue(byte[] src, TypeReference<T> valueTypeRef)
<T> T
readValue(byte[] src, JavaType valueType)
<T> T
readValue(byte[] src, java.lang.Class<T> valueType)
<T> T
readValue(JsonParser p, ResolvedType valueType)
Method to deserialize JSON content into a Java type, reference to which is passed as argument.<T> T
readValue(JsonParser p, TypeReference<T> valueTypeRef)
Method to deserialize JSON content into a Java type, reference to which is passed as argument.<T> T
readValue(JsonParser p, JavaType valueType)
Type-safe overloaded method, basically alias forreadValue(JsonParser, Class)
.<T> T
readValue(JsonParser p, java.lang.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 (likeBoolean
).<T> T
readValue(java.io.DataInput src, JavaType valueType)
<T> T
readValue(java.io.DataInput src, java.lang.Class<T> valueType)
<T> T
readValue(java.io.File src, TypeReference<T> valueTypeRef)
Method to deserialize JSON content from given file into given Java type.<T> T
readValue(java.io.File src, JavaType valueType)
Method to deserialize JSON content from given file into given Java type.<T> T
readValue(java.io.File src, java.lang.Class<T> valueType)
Method to deserialize JSON content from given file into given Java type.<T> T
readValue(java.io.InputStream src, TypeReference<T> valueTypeRef)
<T> T
readValue(java.io.InputStream src, JavaType valueType)
<T> T
readValue(java.io.InputStream src, java.lang.Class<T> valueType)
<T> T
readValue(java.io.Reader src, TypeReference<T> valueTypeRef)
<T> T
readValue(java.io.Reader src, JavaType valueType)
<T> T
readValue(java.io.Reader src, java.lang.Class<T> valueType)
<T> T
readValue(java.lang.String content, TypeReference<T> valueTypeRef)
Method to deserialize JSON content from given JSON content String.<T> T
readValue(java.lang.String content, JavaType valueType)
Method to deserialize JSON content from given JSON content String.<T> T
readValue(java.lang.String content, java.lang.Class<T> valueType)
Method to deserialize JSON content from given JSON content String.<T> T
readValue(java.net.URL src, TypeReference<T> valueTypeRef)
Same asreadValue(java.net.URL, Class)
except that target specified byTypeReference
.<T> T
readValue(java.net.URL src, JavaType valueType)
Same asreadValue(java.net.URL, Class)
except that target specified byJavaType
.<T> T
readValue(java.net.URL src, java.lang.Class<T> valueType)
Method to deserialize JSON content from given resource into given Java type.<T> MappingIterator<T>
readValues(JsonParser p, ResolvedType valueType)
Convenience method, equivalent in function to:<T> MappingIterator<T>
readValues(JsonParser p, TypeReference<T> valueTypeRef)
Method for reading sequence of Objects from parser stream.<T> MappingIterator<T>
readValues(JsonParser p, JavaType valueType)
Convenience method, equivalent in function to:<T> MappingIterator<T>
readValues(JsonParser p, java.lang.Class<T> valueType)
Convenience method, equivalent in function to: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(Module... modules)
Convenience method for registering specified modules in order; functionally equivalent to:ObjectMapper
registerModules(java.lang.Iterable<? extends Module> modules)
Convenience method for registering specified modules in order; functionally equivalent to: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).void
registerSubtypes(java.lang.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(java.util.Collection<java.lang.Class<?>> subtypes)
ObjectMapper
setAccessorNaming(AccessorNamingStrategy.Provider s)
Method for setting custom accessor naming strategy to use.ObjectMapper
setAnnotationIntrospector(AnnotationIntrospector ai)
Method for settingAnnotationIntrospector
used by this mapper instance for both serialization and deserialization.ObjectMapper
setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI)
Method for changingAnnotationIntrospector
instances used by this mapper instance for serialization and deserialization, specifying them separately so that different introspection can be used for different aspectsObjectMapper
setBase64Variant(Base64Variant v)
Method that will configure defaultBase64Variant
thatbyte[]
serializers and deserializers will use.ObjectMapper
setConfig(DeserializationConfig config)
Method that allows overriding of the underlyingDeserializationConfig
object.ObjectMapper
setConfig(SerializationConfig config)
Method that allows overriding of the underlyingSerializationConfig
object, which contains serialization-specific configuration settings.ObjectMapper
setConstructorDetector(ConstructorDetector cd)
Method for specifyingConstructorDetector
to use for determining some aspects of creator auto-detection (specifically auto-detection of constructor, and in particular behavior with single-argument constructors).ObjectMapper
setDateFormat(java.text.DateFormat dateFormat)
Method for configuring the defaultDateFormat
to use when serializing time values as Strings, and deserializing from JSON Strings.ObjectMapper
setDefaultAttributes(ContextAttributes attrs)
NOTE: preferred way to set the defaults is to useBuilder
style construction, seeJsonMapper.builder()
(andMapperBuilder.defaultAttributes(com.fasterxml.jackson.databind.cfg.ContextAttributes)
).ObjectMapper
setDefaultLeniency(java.lang.Boolean b)
ObjectMapper
setDefaultMergeable(java.lang.Boolean b)
Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).ObjectMapper
setDefaultPrettyPrinter(PrettyPrinter pp)
Method for specifyingPrettyPrinter
to use when "default pretty-printing" is enabled (by enablingSerializationFeature.INDENT_OUTPUT
)ObjectMapper
setDefaultPropertyInclusion(JsonInclude.Include incl)
Short-cut for:ObjectMapper
setDefaultPropertyInclusion(JsonInclude.Value incl)
Method for setting default POJO property inclusion strategy for serialization, applied for all properties for which there are no per-type or per-property overrides (via annotations or config overrides).ObjectMapper
setDefaultSetterInfo(JsonSetter.Value v)
Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).ObjectMapper
setDefaultTyping(TypeResolverBuilder<?> typer)
Method for enabling automatic inclusion of type information ("Default Typing"), using specified handler object for determining which types this affects, as well as details of how information is embedded.ObjectMapper
setDefaultVisibility(JsonAutoDetect.Value vis)
Method for setting auto-detection visibility definition defaults, which are in effect unless overridden by annotations (likeJsonAutoDetect
) or per-type visibility overrides.ObjectMapper
setFilterProvider(FilterProvider filterProvider)
Method for configuring this mapper to use specifiedFilterProvider
for mapping Filter Ids to actual filter instances.void
setFilters(FilterProvider filterProvider)
Deprecated.Since 2.6, usesetFilterProvider(com.fasterxml.jackson.databind.ser.FilterProvider)
instead (allows chaining)java.lang.Object
setHandlerInstantiator(HandlerInstantiator hi)
Method for configuringHandlerInstantiator
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 configuringInjectableValues
which used to find values to inject.ObjectMapper
setLocale(java.util.Locale l)
Method for overriding default locale to use for formatting.void
setMixInAnnotations(java.util.Map<java.lang.Class<?>,java.lang.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
setMixInResolver(ClassIntrospector.MixInResolver resolver)
Method that can be called to specify given resolver for locating mix-in classes to use, overriding directly added mappings.ObjectMapper
setMixIns(java.util.Map<java.lang.Class<?>,java.lang.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 specifyingJsonNodeFactory
to use for constructing root level tree nodes (via methodcreateObjectNode()
ObjectMapper
setPolymorphicTypeValidator(PolymorphicTypeValidator ptv)
Method for specifyingPolymorphicTypeValidator
to use for validating polymorphic subtypes used with explicit polymorphic types (annotation-based), but NOT one with "default typing" (seeactivateDefaultTyping(PolymorphicTypeValidator)
for details).ObjectMapper
setPropertyInclusion(JsonInclude.Value incl)
Deprecated.ObjectMapper
setPropertyNamingStrategy(PropertyNamingStrategy s)
Method for setting custom property naming strategy to use.ObjectMapper
setSerializationInclusion(JsonInclude.Include incl)
Convenience method, equivalent to calling:ObjectMapper
setSerializerFactory(SerializerFactory f)
Method for setting specificSerializerFactory
to use for constructing (bean) serializers.ObjectMapper
setSerializerProvider(DefaultSerializerProvider p)
Method for setting "blueprint"SerializerProvider
instance to use as the base for actual provider instances to use for handling caching ofJsonSerializer
instances.ObjectMapper
setSubtypeResolver(SubtypeResolver str)
Method for setting custom subtype resolver to use.ObjectMapper
setTimeZone(java.util.TimeZone tz)
Method for overriding default TimeZone to use for formatting.ObjectMapper
setTypeFactory(TypeFactory f)
Method that can be used to overrideTypeFactory
instance used by this mapper.ObjectMapper
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility)
Convenience method that allows changing configuration for underlyingVisibilityChecker
s, to change details of what kinds of properties are auto-detected.ObjectMapper
setVisibility(VisibilityChecker<?> vc)
Method for setting currently configured defaultVisibilityChecker
, object used for determining whether given property element (method, field, constructor) can be auto-detected or not.void
setVisibilityChecker(VisibilityChecker<?> vc)
Deprecated.Since 2.6 usesetVisibility(VisibilityChecker)
instead.JsonFactory
tokenStreamFactory()
Method that can be used to get hold ofJsonFactory
that this mapper uses if it needs to constructJsonParser
s and/orJsonGenerator
s.JsonParser
treeAsTokens(TreeNode n)
Method for constructing aJsonParser
out of JSON tree representation.<T> T
treeToValue(TreeNode n, JavaType valueType)
Same astreeToValue(TreeNode, Class)
but target type specified using fully resolvedJavaType
.<T> T
treeToValue(TreeNode n, java.lang.Class<T> valueType)
Convenience conversion method that will bind data given JSON tree contains into specific value (usually bean) type.<T> T
updateValue(T valueToUpdate, java.lang.Object overrides)
Convenience method similar toconvertValue(Object, JavaType)
but one in which<T extends JsonNode>
TvalueToTree(java.lang.Object fromValue)
Method that is reverse oftreeToValue(com.fasterxml.jackson.core.TreeNode, java.lang.Class<T>)
: it will convert given Java value (usually bean) into its equivalent Tree modeJsonNode
representation.Version
version()
Method that will return version information stored in and read from jar that contains this class.ObjectWriter
writer()
Convenience method for constructingObjectWriter
with default settings.ObjectWriter
writer(Base64Variant defaultBase64)
Factory method for constructingObjectWriter
that will use specified Base64 encoding variant for Base64-encoded binary data.ObjectWriter
writer(FormatSchema schema)
Factory method for constructingObjectWriter
that will pass specific schema object toJsonGenerator
used for writing content.ObjectWriter
writer(CharacterEscapes escapes)
Factory method for constructingObjectReader
that will use specified character escaping details for output.ObjectWriter
writer(PrettyPrinter pp)
Factory method for constructingObjectWriter
that will serialize objects using specified pretty printer for indentation (or if null, no pretty printer)ObjectWriter
writer(ContextAttributes attrs)
Factory method for constructingObjectWriter
that will use specified default attributes.ObjectWriter
writer(FilterProvider filterProvider)
Factory method for constructingObjectWriter
that will serialize objects using specified filter provider.ObjectWriter
writer(SerializationFeature feature)
Factory method for constructingObjectWriter
with specified feature enabled (compared to settings that this mapper instance has).ObjectWriter
writer(SerializationFeature first, SerializationFeature... other)
Factory method for constructingObjectWriter
with specified features enabled (compared to settings that this mapper instance has).ObjectWriter
writer(java.text.DateFormat df)
Factory method for constructingObjectWriter
that will serialize objects using specifiedDateFormat
; or, if null passed, using timestamp (64-bit number.ObjectWriter
writerFor(TypeReference<?> rootType)
Factory method for constructingObjectWriter
that will serialize objects using specified root type, instead of actual runtime type of value.ObjectWriter
writerFor(JavaType rootType)
Factory method for constructingObjectWriter
that will serialize objects using specified root type, instead of actual runtime type of value.ObjectWriter
writerFor(java.lang.Class<?> rootType)
Factory method for constructingObjectWriter
that will serialize objects using specified root type, instead of actual runtime type of value.ObjectWriter
writerWithDefaultPrettyPrinter()
Factory method for constructingObjectWriter
that will serialize objects using the default pretty printer for indentationObjectWriter
writerWithType(TypeReference<?> rootType)
Deprecated.Since 2.5, usewriterFor(TypeReference)
insteadObjectWriter
writerWithType(JavaType rootType)
Deprecated.Since 2.5, usewriterFor(JavaType)
insteadObjectWriter
writerWithType(java.lang.Class<?> rootType)
Deprecated.Since 2.5, usewriterFor(Class)
insteadObjectWriter
writerWithView(java.lang.Class<?> serializationView)
Factory method for constructingObjectWriter
that will serialize objects using specified JSON View (filter).void
writeTree(JsonGenerator g, TreeNode rootNode)
Method for serializing JSON content from given Tree instance, using specified generator.void
writeTree(JsonGenerator g, JsonNode rootNode)
Method to serialize given JSON Tree, using generator provided.void
writeValue(JsonGenerator g, java.lang.Object value)
Method that can be used to serialize any Java value as JSON output, using providedJsonGenerator
.void
writeValue(java.io.DataOutput out, java.lang.Object value)
void
writeValue(java.io.File resultFile, java.lang.Object value)
Method that can be used to serialize any Java value as JSON output, written to File provided.void
writeValue(java.io.OutputStream out, java.lang.Object value)
Method that can be used to serialize any Java value as JSON output, using output stream provided (using encodingJsonEncoding.UTF8
).void
writeValue(java.io.Writer w, java.lang.Object value)
Method that can be used to serialize any Java value as JSON output, using Writer provided.byte[]
writeValueAsBytes(java.lang.Object value)
Method that can be used to serialize any Java value as a byte array.java.lang.String
writeValueAsString(java.lang.Object value)
Method that can be used to serialize any Java value as a String.-
Methods inherited from class com.fasterxml.jackson.core.ObjectCodec
getJsonFactory
-
-
-
-
Constructor Detail
-
ObjectMapper
public ObjectMapper()
Default constructor, which will construct the defaultJsonFactory
as necessary, useSerializerProvider
as itsSerializerProvider
, andBeanSerializerFactory
as itsSerializerFactory
. 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.
-
ObjectMapper
public ObjectMapper(JsonFactory jf)
Constructs instance that uses specifiedJsonFactory
for constructing necessaryJsonParser
s and/orJsonGenerator
s.
-
ObjectMapper
public ObjectMapper(JsonFactory jf, DefaultSerializerProvider sp, DefaultDeserializationContext dc)
Constructs instance that uses specifiedJsonFactory
for constructing necessaryJsonParser
s and/orJsonGenerator
s, and uses given providers for accessing serializers and deserializers.- Parameters:
jf
- JsonFactory to use: if null, a newMappingJsonFactory
will be constructedsp
- SerializerProvider to use: if null, aSerializerProvider
will be constructeddc
- Blueprint deserialization context instance to use for creating actual context objects; if null, will construct standardDeserializationContext
-
-
Method Detail
-
copy
public ObjectMapper copy()
Method for creating a newObjectMapper
instance that has same initial configuration as this instance. Note that this also requires making a copy of the underlyingJsonFactory
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.
- Since:
- 2.1
-
version
public Version version()
Method that will return version information stored in and read from jar that contains this class.- Specified by:
version
in interfaceVersioned
- Specified by:
version
in classObjectCodec
- Returns:
- Version of the component
-
registerModule
public 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.- Parameters:
module
- Module to register
-
registerModules
public ObjectMapper registerModules(Module... modules)
Convenience method for registering specified modules in order; functionally equivalent to:for (Module module : modules) { registerModule(module); }
- Since:
- 2.2
-
registerModules
public ObjectMapper registerModules(java.lang.Iterable<? extends Module> modules)
Convenience method for registering specified modules in order; functionally equivalent to:for (Module module : modules) { registerModule(module); }
- Since:
- 2.2
-
getRegisteredModuleIds
public java.util.Set<java.lang.Object> getRegisteredModuleIds()
The set ofModule
typeIds that are registered in this ObjectMapper, if (and only if!)MapperFeature.IGNORE_DUPLICATE_MODULE_REGISTRATIONS
is enabled AND module being added returns non-null
value for itsModule.getTypeId()
.NOTE: when using the default
SimpleModule
constructor, its id is specified asnull
and as a consequence such module is NOT included in returned set.- Since:
- 2.9.6
-
findModules
public static java.util.List<Module> findModules()
Method for locating available methods, using JDKServiceLoader
facility, along with module-provided SPI.Note that method does not do any caching, so calls should be considered potentially expensive.
- Since:
- 2.2
-
findModules
public static java.util.List<Module> findModules(java.lang.ClassLoader classLoader)
Method for locating available methods, using JDKServiceLoader
facility, along with module-provided SPI.Note that method does not do any caching, so calls should be considered potentially expensive.
- Since:
- 2.2
-
findAndRegisterModules
public ObjectMapper findAndRegisterModules()
Convenience method that is functionally equivalent to: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.- Since:
- 2.2
-
createGenerator
public JsonGenerator createGenerator(java.io.OutputStream out) throws java.io.IOException
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedOutputStream
. Generator is not managed (or "owned") by mapper: caller is responsible for properly closing it once content generation is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createGenerator
public JsonGenerator createGenerator(java.io.OutputStream out, JsonEncoding enc) throws java.io.IOException
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedOutputStream
and encoding. Generator is not managed (or "owned") by mapper: caller is responsible for properly closing it once content generation is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createGenerator
public JsonGenerator createGenerator(java.io.Writer w) throws java.io.IOException
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedWriter
. Generator is not managed (or "owned") by mapper: caller is responsible for properly closing it once content generation is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createGenerator
public JsonGenerator createGenerator(java.io.File outputFile, JsonEncoding enc) throws java.io.IOException
Factory method for constructing properly initializedJsonGenerator
to write content to specifiedFile
, using specified encoding. Generator is not managed (or "owned") by mapper: caller is responsible for properly closing it once content generation is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createGenerator
public JsonGenerator createGenerator(java.io.DataOutput out) throws java.io.IOException
Factory method for constructing properly initializedJsonGenerator
to write content using specifiedDataOutput
. Generator is not managed (or "owned") by mapper: caller is responsible for properly closing it once content generation is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(java.io.File src) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content from specifiedFile
. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(java.net.URL src) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content from specifiedFile
. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(java.io.InputStream in) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content using specifiedInputStream
. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(java.io.Reader r) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content using specifiedReader
. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(byte[] content) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content from specified byte array. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(byte[] content, int offset, int len) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content from specified byte array. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(java.lang.String content) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content from specified String. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(char[] content) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content from specified character array Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(char[] content, int offset, int len) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content from specified character array. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createParser
public JsonParser createParser(java.io.DataInput content) throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content using specifiedDataInput
. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
createNonBlockingByteArrayParser
public JsonParser createNonBlockingByteArrayParser() throws java.io.IOException
Factory method for constructing properly initializedJsonParser
to read content using non-blocking (asynchronous) mode. Parser is not managed (or "owned") by ObjectMapper: caller is responsible for properly closing it once content reading is complete.- Throws:
java.io.IOException
- Since:
- 2.11
-
getSerializationConfig
public SerializationConfig getSerializationConfig()
Method that returns the shared defaultSerializationConfig
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.
-
getDeserializationConfig
public DeserializationConfig getDeserializationConfig()
Method that returns the shared defaultDeserializationConfig
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.
-
getDeserializationContext
public DeserializationContext getDeserializationContext()
Method for getting currentDeserializationContext
.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.
-
setSerializerFactory
public ObjectMapper setSerializerFactory(SerializerFactory f)
Method for setting specificSerializerFactory
to use for constructing (bean) serializers.
-
getSerializerFactory
public SerializerFactory getSerializerFactory()
Method for getting currentSerializerFactory
.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.
-
setSerializerProvider
public ObjectMapper setSerializerProvider(DefaultSerializerProvider p)
Method for setting "blueprint"SerializerProvider
instance to use as the base for actual provider instances to use for handling caching ofJsonSerializer
instances.
-
getSerializerProvider
public SerializerProvider getSerializerProvider()
Accessor for the "blueprint" (or, factory) instance, from which instances are created by callingDefaultSerializerProvider.createInstance(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.ser.SerializerFactory)
. Note that returned instance cannot be directly used as it is not properly configured: to get a properly configured instance to call, usegetSerializerProviderInstance()
instead.
-
getSerializerProviderInstance
public SerializerProvider getSerializerProviderInstance()
Accessor for constructing and returning aSerializerProvider
instance that may be used for accessing serializers. This is same as callinggetSerializerProvider()
, and callingcreateInstance
on it.- Since:
- 2.7
-
setMixIns
public ObjectMapper setMixIns(java.util.Map<java.lang.Class<?>,java.lang.Class<?>> sourceMixins)
Method to use for defining mix-in annotations to use for augmenting annotations that processable (serializable / deserializable) classes have. Mixing in is done when introspecting class annotations and properties. Map passed contains keys that are target classes (ones to augment with new annotation overrides), and values that are source classes (have annotations to use for augmentation). Annotations from source classes (and their supertypes) will override annotations that target classes (and their super-types) have.Note that this method will CLEAR any previously defined mix-ins for this mapper.
- Since:
- 2.5
-
addMixIn
public ObjectMapper addMixIn(java.lang.Class<?> target, java.lang.Class<?> mixinSource)
Method to use for adding mix-in annotations to use for augmenting specified class or interface. All annotations frommixinSource
are taken to override annotations thattarget
(or its supertypes) has.- Parameters:
target
- Class (or interface) whose annotations to effectively overridemixinSource
- Class (or interface) whose annotations are to be "added" to target's annotations, overriding as necessary- Since:
- 2.5
-
setMixInResolver
public ObjectMapper setMixInResolver(ClassIntrospector.MixInResolver resolver)
Method that can be called to specify given resolver for locating mix-in classes to use, overriding directly added mappings. Note that direct mappings are not cleared, but they are only applied if resolver does not provide mix-in matches.- Since:
- 2.6
-
findMixInClassFor
public java.lang.Class<?> findMixInClassFor(java.lang.Class<?> cls)
-
mixInCount
public int mixInCount()
-
setMixInAnnotations
@Deprecated public void setMixInAnnotations(java.util.Map<java.lang.Class<?>,java.lang.Class<?>> sourceMixins)
Deprecated.Since 2.5: replaced by a fluent form of the method;setMixIns(java.util.Map<java.lang.Class<?>, java.lang.Class<?>>)
.
-
addMixInAnnotations
@Deprecated public final void addMixInAnnotations(java.lang.Class<?> target, java.lang.Class<?> mixinSource)
Deprecated.Since 2.5: replaced by a fluent form of the method;addMixIn(Class, Class)
.
-
getVisibilityChecker
public 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.
-
setVisibility
public ObjectMapper setVisibility(VisibilityChecker<?> vc)
Method for setting currently configured defaultVisibilityChecker
, object used for determining whether given property element (method, field, constructor) can be auto-detected or not. This default checker is used as the base visibility: per-class overrides (both via annotations and per-type config overrides) can further change these settings.- Since:
- 2.6
-
setVisibility
public ObjectMapper setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility visibility)
Convenience method that allows changing configuration for underlyingVisibilityChecker
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).- Parameters:
forMethod
- Type of property descriptor affected (field, getter/isGetter, setter, creator)visibility
- Minimum visibility to require for the property descriptors of type- Returns:
- Modified mapper instance (that is, "this"), to allow chaining of configuration calls
-
getSubtypeResolver
public SubtypeResolver getSubtypeResolver()
Method for accessing subtype resolver in use.
-
setSubtypeResolver
public ObjectMapper setSubtypeResolver(SubtypeResolver str)
Method for setting custom subtype resolver to use.
-
setAnnotationIntrospector
public ObjectMapper setAnnotationIntrospector(AnnotationIntrospector ai)
Method for settingAnnotationIntrospector
used by this mapper instance for both serialization and deserialization. Note that doing this will replace the current introspector, which may lead to unavailability of core Jackson annotations. If you want to combine handling of multiple introspectors, have a look atAnnotationIntrospectorPair
.- See Also:
AnnotationIntrospectorPair
-
setAnnotationIntrospectors
public ObjectMapper setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI)
Method for changingAnnotationIntrospector
instances used by this mapper instance for serialization and deserialization, specifying them separately so that different introspection can be used for different aspects- Parameters:
serializerAI
-AnnotationIntrospector
to use for configuring serializationdeserializerAI
-AnnotationIntrospector
to use for configuring deserialization- Since:
- 2.1
- See Also:
AnnotationIntrospectorPair
-
setPropertyNamingStrategy
public ObjectMapper setPropertyNamingStrategy(PropertyNamingStrategy s)
Method for setting custom property naming strategy to use.
-
getPropertyNamingStrategy
public PropertyNamingStrategy getPropertyNamingStrategy()
- Since:
- 2.5
-
setAccessorNaming
public ObjectMapper setAccessorNaming(AccessorNamingStrategy.Provider s)
Method for setting custom accessor naming strategy to use.- Since:
- 2.12
-
setDefaultPrettyPrinter
public ObjectMapper setDefaultPrettyPrinter(PrettyPrinter pp)
Method for specifyingPrettyPrinter
to use when "default pretty-printing" is enabled (by enablingSerializationFeature.INDENT_OUTPUT
)- Parameters:
pp
- Pretty printer to use by default.- Returns:
- This mapper, useful for call-chaining
- Since:
- 2.6
-
setVisibilityChecker
@Deprecated public void setVisibilityChecker(VisibilityChecker<?> vc)
Deprecated.Since 2.6 usesetVisibility(VisibilityChecker)
instead.
-
setPolymorphicTypeValidator
public ObjectMapper setPolymorphicTypeValidator(PolymorphicTypeValidator ptv)
Method for specifyingPolymorphicTypeValidator
to use for validating polymorphic subtypes used with explicit polymorphic types (annotation-based), but NOT one with "default typing" (seeactivateDefaultTyping(PolymorphicTypeValidator)
for details).- Since:
- 2.10
-
getPolymorphicTypeValidator
public PolymorphicTypeValidator getPolymorphicTypeValidator()
Accessor for configuredPolymorphicTypeValidator
used for validating polymorphic subtypes used with explicit polymorphic types (annotation-based), but NOT one with "default typing" (seeactivateDefaultTyping(PolymorphicTypeValidator)
for details).- Since:
- 2.10
-
setSerializationInclusion
public ObjectMapper setSerializationInclusion(JsonInclude.Include incl)
Convenience method, equivalent to calling:setPropertyInclusion(JsonInclude.Value.construct(incl, incl));
NOTE: behavior differs slightly from 2.8, where second argument was implied to be
JsonInclude.Include.ALWAYS
.
-
setPropertyInclusion
@Deprecated public ObjectMapper setPropertyInclusion(JsonInclude.Value incl)
Deprecated.- Since:
- 2.7
-
setDefaultPropertyInclusion
public ObjectMapper setDefaultPropertyInclusion(JsonInclude.Value incl)
Method for setting default POJO property inclusion strategy for serialization, applied for all properties for which there are no per-type or per-property overrides (via annotations or config overrides).- Since:
- 2.9 (basically rename of
setPropertyInclusion
)
-
setDefaultPropertyInclusion
public ObjectMapper setDefaultPropertyInclusion(JsonInclude.Include incl)
Short-cut for:setDefaultPropertyInclusion(JsonInclude.Value.construct(incl, incl));
- Since:
- 2.9 (basically rename of
setPropertyInclusion
)
-
setDefaultSetterInfo
public ObjectMapper setDefaultSetterInfo(JsonSetter.Value v)
Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).- Since:
- 2.9
-
setDefaultVisibility
public ObjectMapper setDefaultVisibility(JsonAutoDetect.Value vis)
Method for setting auto-detection visibility definition defaults, which are in effect unless overridden by annotations (likeJsonAutoDetect
) or per-type visibility overrides.- Since:
- 2.9
-
setDefaultMergeable
public ObjectMapper setDefaultMergeable(java.lang.Boolean b)
Method for setting default Setter configuration, regarding things like merging, null-handling; used for properties for which there are no per-type or per-property overrides (via annotations or config overrides).- Since:
- 2.9
-
setDefaultLeniency
public ObjectMapper setDefaultLeniency(java.lang.Boolean b)
- Since:
- 2.10
-
registerSubtypes
public void registerSubtypes(java.lang.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). Type for given class is determined from appropriate annotation; or if missing, default name (unqualified class name)
-
registerSubtypes
public 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). Name may be provided as part of argument, but if not will be based on annotations or use default name (unqualified class name).
-
registerSubtypes
public void registerSubtypes(java.util.Collection<java.lang.Class<?>> subtypes)
- Since:
- 2.9
-
activateDefaultTyping
public ObjectMapper activateDefaultTyping(PolymorphicTypeValidator ptv)
Convenience method that is equivalent to callingactivateDefaultTyping(ptv, DefaultTyping.OBJECT_AND_NON_CONCRETE);
NOTE: choice of
PolymorphicTypeValidator
to pass is critical for security as allowing all subtypes can be risky for untrusted content.- Parameters:
ptv
- Validator used to verify that actual subtypes to deserialize are valid against whatever criteria validator uses: important in case where untrusted content is deserialized.- Since:
- 2.10
-
activateDefaultTyping
public ObjectMapper activateDefaultTyping(PolymorphicTypeValidator ptv, ObjectMapper.DefaultTyping applicability)
Convenience method that is equivalent to callingactivateDefaultTyping(ptv, dti, JsonTypeInfo.As.WRAPPER_ARRAY);
NOTE: choice of
PolymorphicTypeValidator
to pass is critical for security as allowing all subtypes can be risky for untrusted content.- Parameters:
ptv
- Validator used to verify that actual subtypes to deserialize are valid against whatever criteria validator uses: important in case where untrusted content is deserialized.applicability
- Defines kinds of types for which additional type information is added; seeObjectMapper.DefaultTyping
for more information.- Since:
- 2.10
-
activateDefaultTyping
public ObjectMapper activateDefaultTyping(PolymorphicTypeValidator ptv, ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs)
Method for enabling automatic inclusion of type information ("Default Typing"), needed for proper deserialization of polymorphic types (unless types have been annotated withJsonTypeInfo
).NOTE: use of
JsonTypeInfo.As#EXTERNAL_PROPERTY
NOT SUPPORTED; and attempts of do so will throw anIllegalArgumentException
to make this limitation explicit.NOTE: choice of
PolymorphicTypeValidator
to pass is critical for security as allowing all subtypes can be risky for untrusted content.- Parameters:
ptv
- Validator used to verify that actual subtypes to deserialize are valid against whatever criteria validator uses: important in case where untrusted content is deserialized.applicability
- Defines kinds of types for which additional type information is added; seeObjectMapper.DefaultTyping
for more information.includeAs
-- Since:
- 2.10
-
activateDefaultTypingAsProperty
public ObjectMapper activateDefaultTypingAsProperty(PolymorphicTypeValidator ptv, ObjectMapper.DefaultTyping applicability, java.lang.String propertyName)
Method for enabling automatic inclusion of type information ("Default Typing") -- needed for proper deserialization of polymorphic types (unless types have been annotated withJsonTypeInfo
) -- 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)NOTE: choice of
PolymorphicTypeValidator
to pass is critical for security as allowing all subtypes can be risky for untrusted content.- Parameters:
ptv
- Validator used to verify that actual subtypes to deserialize are valid against whatever criteria validator uses: important in case where untrusted content is deserialized.applicability
- Defines kinds of types for which additional type information is added; seeObjectMapper.DefaultTyping
for more information.propertyName
- Name of property used for including type id for polymorphic values.- Since:
- 2.10
-
deactivateDefaultTyping
public ObjectMapper deactivateDefaultTyping()
Method for disabling automatic inclusion of type information; if so, only explicitly annotated types (ones withJsonTypeInfo
) will have additional embedded type information.- Since:
- 2.10
-
setDefaultTyping
public ObjectMapper setDefaultTyping(TypeResolverBuilder<?> typer)
Method for enabling automatic inclusion of type information ("Default Typing"), using specified handler object for determining which types this affects, as well as details of how information is embedded.NOTE: use of Default Typing can be a potential security risk if incoming content comes from untrusted sources, so care should be taken to use a
TypeResolverBuilder
that can limit allowed classes to deserialize. Note in particular thatStdTypeResolverBuilder
DOES NOT limit applicability but creates type (de)serializers for all types.- Parameters:
typer
- Type information inclusion handler
-
enableDefaultTyping
@Deprecated public ObjectMapper enableDefaultTyping()
Deprecated.Since 2.10 useactivateDefaultTyping(PolymorphicTypeValidator)
instead
-
enableDefaultTyping
@Deprecated public ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping dti)
Deprecated.Since 2.10 useactivateDefaultTyping(PolymorphicTypeValidator,DefaultTyping)
instead
-
enableDefaultTyping
@Deprecated public ObjectMapper enableDefaultTyping(ObjectMapper.DefaultTyping applicability, JsonTypeInfo.As includeAs)
Deprecated.Since 2.10 useactivateDefaultTyping(PolymorphicTypeValidator,DefaultTyping,JsonTypeInfo.As)
instead
-
enableDefaultTypingAsProperty
@Deprecated public ObjectMapper enableDefaultTypingAsProperty(ObjectMapper.DefaultTyping applicability, java.lang.String propertyName)
Deprecated.Since 2.10 useactivateDefaultTypingAsProperty(PolymorphicTypeValidator,DefaultTyping,String)
instead
-
disableDefaultTyping
@Deprecated public ObjectMapper disableDefaultTyping()
Deprecated.Since 2.10 usedeactivateDefaultTyping()
instead
-
configOverride
public MutableConfigOverride configOverride(java.lang.Class<?> type)
Accessor for getting a mutable configuration override object for given type, needed to add or change per-type overrides applied to properties of given type. Usage is through returned object by calling "setter" methods, which directly modify override object and take effect directly. For example you can domapper.configOverride(java.util.Date.class) .setFormat(JsonFormat.Value.forPattern("yyyy-MM-dd"));
to change the default format to use for properties of typeDate
(possibly further overridden by per-property annotations)- Since:
- 2.8
-
coercionConfigDefaults
public MutableCoercionConfig coercionConfigDefaults()
Accessor forMutableCoercionConfig
through which default (fallback) coercion configurations can be changed. Note that such settings are only applied if more specific (by logical and physical type) configuration have not been defined.- Since:
- 2.12
-
coercionConfigFor
public MutableCoercionConfig coercionConfigFor(LogicalType logicalType)
Accessor forMutableCoercionConfig
through which coercion configuration for specified logical target type can be set.- Since:
- 2.12
-
coercionConfigFor
public MutableCoercionConfig coercionConfigFor(java.lang.Class<?> physicalType)
Accessor forMutableCoercionConfig
through which coercion configuration for specified physical target type can be set.- Since:
- 2.12
-
getTypeFactory
public TypeFactory getTypeFactory()
Accessor for getting currently configuredTypeFactory
instance.
-
setTypeFactory
public ObjectMapper setTypeFactory(TypeFactory f)
Method that can be used to overrideTypeFactory
instance used by this mapper.Note: will also set
TypeFactory
that deserialization and serialization config objects use.
-
constructType
public JavaType constructType(java.lang.reflect.Type t)
Convenience method for constructingJavaType
out of given type (typicallyjava.lang.Class
), but without explicit context.
-
constructType
public JavaType constructType(TypeReference<?> typeRef)
Convenience method for constructingJavaType
out of given type reference.- Since:
- 2.12
-
getNodeFactory
public JsonNodeFactory getNodeFactory()
Method that can be used to get hold ofJsonNodeFactory
that this mapper will use when directly constructing rootJsonNode
instances for Trees.Note: this is just a shortcut for calling
getDeserializationConfig().getNodeFactory()
-
setNodeFactory
public ObjectMapper setNodeFactory(JsonNodeFactory f)
Method for specifyingJsonNodeFactory
to use for constructing root level tree nodes (via methodcreateObjectNode()
-
setConstructorDetector
public ObjectMapper setConstructorDetector(ConstructorDetector cd)
Method for specifyingConstructorDetector
to use for determining some aspects of creator auto-detection (specifically auto-detection of constructor, and in particular behavior with single-argument constructors).- Since:
- 2.12
-
addHandler
public ObjectMapper addHandler(DeserializationProblemHandler h)
Method for adding specifiedDeserializationProblemHandler
to be used for handling specific problems during deserialization.
-
clearProblemHandlers
public ObjectMapper clearProblemHandlers()
Method for removing all registeredDeserializationProblemHandler
s instances from this mapper.
-
setConfig
public ObjectMapper setConfig(DeserializationConfig config)
Method that allows overriding of the underlyingDeserializationConfig
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.- Since:
- 2.4
-
setFilters
@Deprecated public void setFilters(FilterProvider filterProvider)
Deprecated.Since 2.6, usesetFilterProvider(com.fasterxml.jackson.databind.ser.FilterProvider)
instead (allows chaining)
-
setFilterProvider
public ObjectMapper setFilterProvider(FilterProvider filterProvider)
Method for configuring this mapper to use specifiedFilterProvider
for mapping Filter Ids to actual filter instances.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 notObjectWriter
s.- Since:
- 2.6
-
setBase64Variant
public ObjectMapper setBase64Variant(Base64Variant v)
Method that will configure defaultBase64Variant
thatbyte[]
serializers and deserializers will use.- Parameters:
v
- Base64 variant to use- Returns:
- This mapper, for convenience to allow chaining
- Since:
- 2.1
-
setConfig
public ObjectMapper setConfig(SerializationConfig config)
Method that allows overriding of the underlyingSerializationConfig
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.- Since:
- 2.4
-
tokenStreamFactory
public JsonFactory tokenStreamFactory()
Method that can be used to get hold ofJsonFactory
that this mapper uses if it needs to constructJsonParser
s and/orJsonGenerator
s.WARNING: note that all
ObjectReader
andObjectWriter
instances created by this mapper usually share the same configuredJsonFactory
, so changes to its configuration will "leak". To avoid such observed changes you should always use "with()" and "without()" method ofObjectReader
andObjectWriter
for changingJsonParser.Feature
andJsonGenerator.Feature
settings to use on per-call basis.- Returns:
JsonFactory
that this mapper uses when it needs to construct Json parser and generators- Since:
- 2.10
-
getFactory
public JsonFactory getFactory()
Description copied from class:ObjectCodec
Accessor for finding underlying data format factory (JsonFactory
) codec will use for data binding.- Overrides:
getFactory
in classObjectCodec
- Returns:
- Underlying
JsonFactory
instance
-
setDateFormat
public ObjectMapper setDateFormat(java.text.DateFormat dateFormat)
Method for configuring the defaultDateFormat
to use when serializing time values as Strings, and deserializing from JSON Strings. This is preferably to directly modifyingSerializationConfig
andDeserializationConfig
instances. If you need per-request configuration, usewriter(DateFormat)
to create properly configuredObjectWriter
and use that; this becauseObjectWriter
s are thread-safe whereas ObjectMapper itself is only thread-safe when configuring methods (such as this one) are NOT called.
-
getDateFormat
public java.text.DateFormat getDateFormat()
- Since:
- 2.5
-
setHandlerInstantiator
public java.lang.Object setHandlerInstantiator(HandlerInstantiator hi)
Method for configuringHandlerInstantiator
to use for creating instances of handlers (such as serializers, deserializers, type and type id resolvers), given a class.- Parameters:
hi
- Instantiator to use; if null, use the default implementation
-
setInjectableValues
public ObjectMapper setInjectableValues(InjectableValues injectableValues)
Method for configuringInjectableValues
which used to find values to inject.
-
getInjectableValues
public InjectableValues getInjectableValues()
- Since:
- 2.6
-
setLocale
public ObjectMapper setLocale(java.util.Locale l)
Method for overriding default locale to use for formatting. Default value used isLocale.getDefault()
.
-
setTimeZone
public ObjectMapper setTimeZone(java.util.TimeZone tz)
Method for overriding default TimeZone to use for formatting. Default value used is UTC (NOT default TimeZone of JVM).
-
setDefaultAttributes
public ObjectMapper setDefaultAttributes(ContextAttributes attrs)
NOTE: preferred way to set the defaults is to use
Builder
style construction, seeJsonMapper.builder()
(andMapperBuilder.defaultAttributes(com.fasterxml.jackson.databind.cfg.ContextAttributes)
).- Since:
- 2.13
-
isEnabled
public boolean isEnabled(MapperFeature f)
Method for checking whether givenMapperFeature
is enabled.
-
configure
@Deprecated public ObjectMapper configure(MapperFeature f, boolean state)
Deprecated.Since 2.13 useJsonMapper.builder().configure(...)
-
enable
@Deprecated public ObjectMapper enable(MapperFeature... f)
Deprecated.Since 2.13 useJsonMapper.builder().enable(...)
-
disable
@Deprecated public ObjectMapper disable(MapperFeature... f)
Deprecated.Since 2.13 useJsonMapper.builder().disable(...)
-
isEnabled
public boolean isEnabled(SerializationFeature f)
Method for checking whether given serialization-specific feature is enabled.
-
configure
public ObjectMapper configure(SerializationFeature f, boolean state)
Method for changing state of an on/off serialization feature for this object mapper.
-
enable
public ObjectMapper enable(SerializationFeature f)
Method for enabling specifiedDeserializationConfig
feature. Modifies and returns this instance; no new object is created.
-
enable
public ObjectMapper enable(SerializationFeature first, SerializationFeature... f)
Method for enabling specifiedDeserializationConfig
features. Modifies and returns this instance; no new object is created.
-
disable
public ObjectMapper disable(SerializationFeature f)
Method for enabling specifiedDeserializationConfig
features. Modifies and returns this instance; no new object is created.
-
disable
public ObjectMapper disable(SerializationFeature first, SerializationFeature... f)
Method for enabling specifiedDeserializationConfig
features. Modifies and returns this instance; no new object is created.
-
isEnabled
public boolean isEnabled(DeserializationFeature f)
Method for checking whether given deserialization-specific feature is enabled.
-
configure
public ObjectMapper configure(DeserializationFeature f, boolean state)
Method for changing state of an on/off deserialization feature for this object mapper.
-
enable
public ObjectMapper enable(DeserializationFeature feature)
Method for enabling specifiedDeserializationConfig
features. Modifies and returns this instance; no new object is created.
-
enable
public ObjectMapper enable(DeserializationFeature first, DeserializationFeature... f)
Method for enabling specifiedDeserializationConfig
features. Modifies and returns this instance; no new object is created.
-
disable
public ObjectMapper disable(DeserializationFeature feature)
Method for enabling specifiedDeserializationConfig
features. Modifies and returns this instance; no new object is created.
-
disable
public ObjectMapper disable(DeserializationFeature first, DeserializationFeature... f)
Method for enabling specifiedDeserializationConfig
features. Modifies and returns this instance; no new object is created.
-
isEnabled
public boolean isEnabled(JsonParser.Feature f)
-
configure
public ObjectMapper configure(JsonParser.Feature f, boolean state)
Method for changing state of specifiedJsonParser.Feature
s for parser instances this object mapper creates.Note that this is equivalent to directly calling same method on
getFactory()
.WARNING: since this method directly modifies state of underlying
JsonFactory
, it will change observed configuration byObjectReader
s as well -- to avoid this, useObjectReader.with(JsonParser.Feature)
instead.
-
enable
public ObjectMapper enable(JsonParser.Feature... features)
Method for enabling specifiedJsonParser.Feature
s for parser instances this object mapper creates.Note that this is equivalent to directly calling same method on
getFactory()
.WARNING: since this method directly modifies state of underlying
JsonFactory
, it will change observed configuration byObjectReader
s as well -- to avoid this, useObjectReader.with(JsonParser.Feature)
instead.- Since:
- 2.5
-
disable
public ObjectMapper disable(JsonParser.Feature... features)
Method for disabling specifiedJsonParser.Feature
s for parser instances this object mapper creates.Note that this is equivalent to directly calling same method on
getFactory()
.WARNING: since this method directly modifies state of underlying
JsonFactory
, it will change observed configuration byObjectReader
s as well -- to avoid this, useObjectReader.without(JsonParser.Feature)
instead.- Since:
- 2.5
-
isEnabled
public boolean isEnabled(JsonGenerator.Feature f)
-
configure
public ObjectMapper configure(JsonGenerator.Feature f, boolean state)
Method for changing state of an on/offJsonGenerator
feature for generator instances this object mapper creates.Note that this is equivalent to directly calling same method on
getFactory()
.WARNING: since this method directly modifies state of underlying
JsonFactory
, it will change observed configuration byObjectWriter
s as well -- to avoid this, useObjectWriter.with(JsonGenerator.Feature)
instead.
-
enable
public ObjectMapper enable(JsonGenerator.Feature... features)
Method for enabling specifiedJsonGenerator.Feature
s for parser instances this object mapper creates.Note that this is equivalent to directly calling same method on
getFactory()
.WARNING: since this method directly modifies state of underlying
JsonFactory
, it will change observed configuration byObjectWriter
s as well -- to avoid this, useObjectWriter.with(JsonGenerator.Feature)
instead.- Since:
- 2.5
-
disable
public ObjectMapper disable(JsonGenerator.Feature... features)
Method for disabling specifiedJsonGenerator.Feature
s for parser instances this object mapper creates.Note that this is equivalent to directly calling same method on
getFactory()
.WARNING: since this method directly modifies state of underlying
JsonFactory
, it will change observed configuration byObjectWriter
s as well -- to avoid this, useObjectWriter.without(JsonGenerator.Feature)
instead.- Since:
- 2.5
-
isEnabled
public boolean isEnabled(JsonFactory.Feature f)
Convenience method, equivalent to:getFactory().isEnabled(f);
-
isEnabled
public boolean isEnabled(StreamReadFeature f)
- Since:
- 2.10
-
isEnabled
public boolean isEnabled(StreamWriteFeature f)
- Since:
- 2.10
-
readValue
public <T> T readValue(JsonParser p, java.lang.Class<T> valueType) throws java.io.IOException, StreamReadException, DatabindException
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 (likeBoolean
).Note: this method should NOT be used if the result type is a container (
Collection
orMap
. The reason is that due to type erasure, key and value types cannot be introspected when using this method.- Specified by:
readValue
in classObjectCodec
- Type Parameters:
T
- Nominal parameter for target type- Parameters:
p
- Parser to use for decoding content to bindvalueType
- Java value type to bind content to- Returns:
- Value deserialized
- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readValue
public <T> T readValue(JsonParser p, TypeReference<T> valueTypeRef) throws java.io.IOException, StreamReadException, DatabindException
Method to deserialize JSON content into a Java type, reference to which is passed as argument. Type is passed using so-called "super type token" (see ) and specifically needs to be used if the root type is a parameterized (generic) container type.- Specified by:
readValue
in classObjectCodec
- Type Parameters:
T
- Nominal parameter for target type- Parameters:
p
- Parser to use for decoding content to bindvalueTypeRef
- Java value type to bind content to- Returns:
- Value deserialized
- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readValue
public final <T> T readValue(JsonParser p, ResolvedType valueType) throws java.io.IOException, StreamReadException, DatabindException
Method to deserialize JSON content into a Java type, reference to which is passed as argument. Type is passed using Jackson specific type; instance of which can be constructed usingTypeFactory
.- Specified by:
readValue
in classObjectCodec
- Type Parameters:
T
- Nominal parameter for target type- Parameters:
p
- Parser to use for decoding content to bindvalueType
- Java value type to bind content to- Returns:
- Value deserialized
- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readValue
public <T> T readValue(JsonParser p, JavaType valueType) throws java.io.IOException, StreamReadException, DatabindException
Type-safe overloaded method, basically alias forreadValue(JsonParser, Class)
.- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readTree
public <T extends TreeNode> T readTree(JsonParser p) throws java.io.IOException
Method to deserialize JSON content as a treeJsonNode
. ReturnsJsonNode
that represents the root of the resulting tree, if there was content to read, ornull
if no more content is accessible via passedJsonParser
.NOTE! Behavior with end-of-input (no more content) differs between this
readTree
method, and all other methods that take input source: latter will return "missing node", NOTnull
- Specified by:
readTree
in classObjectCodec
- Returns:
- a
JsonNode
, if valid JSON content found; null if input has no content to bind -- note, however, that if JSONnull
token is found, it will be represented as a non-nullJsonNode
(one that returnstrue
forJsonNode.isNull()
- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)
-
readValues
public <T> MappingIterator<T> readValues(JsonParser p, ResolvedType valueType) throws java.io.IOException
Convenience method, equivalent in function to:readerFor(valueType).readValues(p);
Method for reading sequence of Objects from parser stream. Sequence can be either root-level "unwrapped" sequence (without surrounding JSON array), or a sequence contained in a JSON Array. In either case
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 surroundingSTART_ARRAY
(one that contains values to read) but rather to the token following it which is the first token of the first value to read.Note that
ObjectReader
has more complete set of variants.- Specified by:
readValues
in classObjectCodec
- Type Parameters:
T
- Nominal parameter for target type- Parameters:
p
- Parser to use for decoding content to bindvalueType
- Java value type to bind content to- Returns:
- Iterator for incrementally deserializing values
- Throws:
java.io.IOException
- for low-level read issues, orJsonParseException
for decoding problems
-
readValues
public <T> MappingIterator<T> readValues(JsonParser p, JavaType valueType) throws java.io.IOException
Convenience method, equivalent in function to:readerFor(valueType).readValues(p);
Type-safe overload of
readValues(JsonParser, ResolvedType)
.- Throws:
java.io.IOException
-
readValues
public <T> MappingIterator<T> readValues(JsonParser p, java.lang.Class<T> valueType) throws java.io.IOException
Convenience method, equivalent in function to:readerFor(valueType).readValues(p);
Type-safe overload of
readValues(JsonParser, ResolvedType)
.- Specified by:
readValues
in classObjectCodec
- Type Parameters:
T
- Nominal parameter for target type- Parameters:
p
- Parser to use for decoding content to bindvalueType
- Java value type to bind content to- Returns:
- Iterator for incrementally deserializing values
- Throws:
java.io.IOException
- for low-level read issues, orJsonParseException
for decoding problems
-
readValues
public <T> MappingIterator<T> readValues(JsonParser p, TypeReference<T> valueTypeRef) throws java.io.IOException
Method for reading sequence of Objects from parser stream.- Specified by:
readValues
in classObjectCodec
- Type Parameters:
T
- Nominal parameter for target type- Parameters:
p
- Parser to use for decoding content to bindvalueTypeRef
- Java value type to bind content to- Returns:
- Iterator for incrementally deserializing values
- Throws:
java.io.IOException
- for low-level read issues, orJsonParseException
for decoding problems
-
readTree
public JsonNode readTree(java.io.InputStream in) throws java.io.IOException
Method to deserialize JSON content as tree expressed using set ofJsonNode
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),StreamReadException
will be thrown. If no content is found from input (end-of-input), Javanull
will be returned.- Parameters:
in
- Input stream used to read JSON content for building the JSON tree.- Returns:
- a
JsonNode
, if valid JSON content found; null if input has no content to bind -- note, however, that if JSONnull
token is found, it will be represented as a non-nullJsonNode
(one that returnstrue
forJsonNode.isNull()
- Throws:
StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)java.io.IOException
-
readTree
public JsonNode readTree(java.io.Reader r) throws java.io.IOException
Same asreadTree(InputStream)
except content accessed through passed-inReader
- Throws:
java.io.IOException
-
readTree
public JsonNode readTree(java.lang.String content) throws JsonProcessingException, JsonMappingException
Same asreadTree(InputStream)
except content read from passed-inString
-
readTree
public JsonNode readTree(byte[] content) throws java.io.IOException
Same asreadTree(InputStream)
except content read from passed-in byte array.- Throws:
java.io.IOException
-
readTree
public JsonNode readTree(byte[] content, int offset, int len) throws java.io.IOException
Same asreadTree(InputStream)
except content read from passed-in byte array.- Throws:
java.io.IOException
-
readTree
public JsonNode readTree(java.io.File file) throws java.io.IOException
Same asreadTree(InputStream)
except content read from passed-inFile
.- Throws:
java.io.IOException
-
readTree
public JsonNode readTree(java.net.URL source) throws java.io.IOException
Same asreadTree(InputStream)
except content read from passed-inURL
.NOTE: handling of
URL
is delegated toJsonFactory.createParser(java.net.URL)
and usually simply callsURL.openStream()
, meaning no special handling is done. If different HTTP connection options are needed you will need to createInputStream
separately.- Throws:
java.io.IOException
-
writeValue
public void writeValue(JsonGenerator g, java.lang.Object value) throws java.io.IOException, StreamWriteException, DatabindException
Method that can be used to serialize any Java value as JSON output, using providedJsonGenerator
.- Specified by:
writeValue
in classObjectCodec
- Parameters:
g
- Generator to use for serializing valuevalue
- Value to serialize- Throws:
java.io.IOException
- for low-level write issues, orJsonGenerationException
for decoding problemsStreamWriteException
DatabindException
-
writeTree
public void writeTree(JsonGenerator g, TreeNode rootNode) throws java.io.IOException
Description copied from class:ObjectCodec
Method for serializing JSON content from given Tree instance, using specified generator.- Specified by:
writeTree
in classObjectCodec
- Parameters:
g
- Generator to use for serializing valuerootNode
- Tree to serialize- Throws:
java.io.IOException
- for low-level write issues, orJsonGenerationException
for decoding problems
-
writeTree
public void writeTree(JsonGenerator g, JsonNode rootNode) throws java.io.IOException
Method to serialize given JSON Tree, using generator provided.- Throws:
java.io.IOException
-
createObjectNode
public ObjectNode createObjectNode()
Note: return type is co-variant, as basic ObjectCodec abstraction cannot refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)
- Specified by:
createObjectNode
in classObjectCodec
- Returns:
- Object node created
-
createArrayNode
public ArrayNode createArrayNode()
Note: return type is co-variant, as basic ObjectCodec abstraction cannot refer to concrete node types (as it's part of core package, whereas impls are part of mapper package)
- Specified by:
createArrayNode
in classObjectCodec
- Returns:
- Array node created
-
missingNode
public JsonNode missingNode()
- Overrides:
missingNode
in classTreeCodec
- Returns:
- Node that represents "missing" node during traversal: something referenced but that does not exist in content model
-
nullNode
public JsonNode nullNode()
-
treeAsTokens
public JsonParser treeAsTokens(TreeNode n)
Method for constructing aJsonParser
out of JSON tree representation.- Specified by:
treeAsTokens
in classObjectCodec
- Parameters:
n
- Root node of the tree that resulting parser will read from- Returns:
- Parser constructed for traversing over contents of specified node
-
treeToValue
public <T> T treeToValue(TreeNode n, java.lang.Class<T> valueType) throws java.lang.IllegalArgumentException, JsonProcessingException
Convenience conversion method that will bind data given JSON tree contains into specific value (usually bean) type.Functionally equivalent to:
objectMapper.convertValue(n, valueClass);
Note: inclusion of
throws JsonProcessingException
is not accidental since while there can be no input decoding problems, it is possible that content does not match target type: in such case variousDatabindException
s are possible. In additionIllegalArgumentException
is possible in some cases, depending on whetherDeserializationFeature.WRAP_EXCEPTIONS
is enabled or not.- Specified by:
treeToValue
in classObjectCodec
- Type Parameters:
T
- Nominal parameter for target type- Parameters:
n
- Tree to convertvalueType
- Java target value type to convert content to- Returns:
- Converted value instance
- Throws:
JsonProcessingException
- if structural conversion failsjava.lang.IllegalArgumentException
-
treeToValue
public <T> T treeToValue(TreeNode n, JavaType valueType) throws java.lang.IllegalArgumentException, JsonProcessingException
Same astreeToValue(TreeNode, Class)
but target type specified using fully resolvedJavaType
.- Throws:
java.lang.IllegalArgumentException
JsonProcessingException
- Since:
- 2.13
-
valueToTree
public <T extends JsonNode> T valueToTree(java.lang.Object fromValue) throws java.lang.IllegalArgumentException
Method that is reverse oftreeToValue(com.fasterxml.jackson.core.TreeNode, java.lang.Class<T>)
: it will convert given Java value (usually bean) into its equivalent Tree modeJsonNode
representation. Functionally similar to serializing value into token stream and parsing that stream back as tree model node, but more efficient asTokenBuffer
is used to contain the intermediate representation instead of fully serialized contents.NOTE: while results are usually identical to that of serialization followed by deserialization, this is not always the case. In some cases serialization into intermediate representation will retain encapsulation of things like raw value (
RawValue
) or basic node identity (JsonNode
). If so, result is a valid tree, but values are not re-constructed through actual format representation. So if transformation requires actual materialization of encoded content, it will be necessary to do actual serialization.- Type Parameters:
T
- Actual node type; usually either basicJsonNode
orObjectNode
- Parameters:
fromValue
- Java value to convert- Returns:
- (non-null) Root node of the resulting content tree: in case of
null
value node for whichJsonNode.isNull()
returnstrue
. - Throws:
java.lang.IllegalArgumentException
-
canSerialize
public boolean canSerialize(java.lang.Class<?> type)
Method that can be called to check whether mapper thinks it could serialize an instance of given Class. Check is done by checking whether a serializer can be found for the 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
, callcanSerialize(Class, AtomicReference)
instead.- Returns:
- True if mapper can find a serializer for instances of given class (potentially serializable), false otherwise (not serializable)
-
canSerialize
public boolean canSerialize(java.lang.Class<?> type, java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)
Method similar tocanSerialize(Class)
but that can return actualThrowable
that was thrown when trying to construct serializer: this may be useful in figuring out what the actual problem is.- Since:
- 2.3
-
canDeserialize
public boolean canDeserialize(JavaType type)
Method that can be called to check whether mapper thinks it could deserialize an Object of given type. Check is done by checking whether a registered deserializer can be found or built for the type; if not (either by no mapping being found, or through anException
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.- Returns:
- True if mapper can find a serializer for instances of given class (potentially serializable), false otherwise (not serializable)
-
canDeserialize
public boolean canDeserialize(JavaType type, java.util.concurrent.atomic.AtomicReference<java.lang.Throwable> cause)
Method similar tocanDeserialize(JavaType)
but that can return actualThrowable
that was thrown when trying to construct serializer: this may be useful in figuring out what the actual problem is.- Since:
- 2.3
-
readValue
public <T> T readValue(java.io.File src, java.lang.Class<T> valueType) throws java.io.IOException, StreamReadException, DatabindException
Method to deserialize JSON content from given file into given Java type.- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readValue
public <T> T readValue(java.io.File src, TypeReference<T> valueTypeRef) throws java.io.IOException, StreamReadException, DatabindException
Method to deserialize JSON content from given file into given Java type.- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readValue
public <T> T readValue(java.io.File src, JavaType valueType) throws java.io.IOException, StreamReadException, DatabindException
Method to deserialize JSON content from given file into given Java type.- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readValue
public <T> T readValue(java.net.URL src, java.lang.Class<T> valueType) throws java.io.IOException, StreamReadException, DatabindException
Method to deserialize JSON content from given resource into given Java type.NOTE: handling of
URL
is delegated toJsonFactory.createParser(java.net.URL)
and usually simply callsURL.openStream()
, meaning no special handling is done. If different HTTP connection options are needed you will need to createInputStream
separately.- Throws:
java.io.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 whereDeserializationFeature.WRAP_EXCEPTIONS
does NOT result in wrapping of exception even if enabled)StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)
-
readValue
public <T> T readValue(java.net.URL src, TypeReference<T> valueTypeRef) throws java.io.IOException, StreamReadException, DatabindException
Same asreadValue(java.net.URL, Class)
except that target specified byTypeReference
.- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.net.URL src, JavaType valueType) throws java.io.IOException, StreamReadException, DatabindException
Same asreadValue(java.net.URL, Class)
except that target specified byJavaType
.- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.lang.String content, java.lang.Class<T> valueType) throws JsonProcessingException, JsonMappingException
Method to deserialize JSON content from given JSON content String.- Throws:
StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)JsonProcessingException
JsonMappingException
-
readValue
public <T> T readValue(java.lang.String content, TypeReference<T> valueTypeRef) throws JsonProcessingException, JsonMappingException
Method to deserialize JSON content from given JSON content String.- Throws:
StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)JsonProcessingException
JsonMappingException
-
readValue
public <T> T readValue(java.lang.String content, JavaType valueType) throws JsonProcessingException, JsonMappingException
Method to deserialize JSON content from given JSON content String.- Throws:
StreamReadException
- if underlying input contains invalid content of typeJsonParser
supports (JSON for default case)DatabindException
- if the input JSON structure does not match structure expected for result type (or has other mismatch issues)JsonProcessingException
JsonMappingException
-
readValue
public <T> T readValue(java.io.Reader src, java.lang.Class<T> valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.io.Reader src, TypeReference<T> valueTypeRef) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.io.Reader src, JavaType valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.io.InputStream src, java.lang.Class<T> valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.io.InputStream src, TypeReference<T> valueTypeRef) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.io.InputStream src, JavaType valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(byte[] src, java.lang.Class<T> valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(byte[] src, int offset, int len, java.lang.Class<T> valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(byte[] src, TypeReference<T> valueTypeRef) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(byte[] src, int offset, int len, TypeReference<T> valueTypeRef) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(byte[] src, JavaType valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(byte[] src, int offset, int len, JavaType valueType) throws java.io.IOException, StreamReadException, DatabindException
- Throws:
java.io.IOException
StreamReadException
DatabindException
-
readValue
public <T> T readValue(java.io.DataInput src, java.lang.Class<T> valueType) throws java.io.IOException
- Throws:
java.io.IOException
-
readValue
public <T> T readValue(java.io.DataInput src, JavaType valueType) throws java.io.IOException
- Throws:
java.io.IOException
-
writeValue
public void writeValue(java.io.File resultFile, java.lang.Object value) throws java.io.IOException, StreamWriteException, DatabindException
Method that can be used to serialize any Java value as JSON output, written to File provided.- Throws:
java.io.IOException
StreamWriteException
DatabindException
-
writeValue
public void writeValue(java.io.OutputStream out, java.lang.Object value) throws java.io.IOException, StreamWriteException, DatabindException
Method that can be used to serialize any Java value as JSON output, using output stream provided (using encodingJsonEncoding.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 whenJsonGenerator
we construct is closed).- Throws:
java.io.IOException
StreamWriteException
DatabindException
-
writeValue
public void writeValue(java.io.DataOutput out, java.lang.Object value) throws java.io.IOException
- Throws:
java.io.IOException
- Since:
- 2.8
-
writeValue
public void writeValue(java.io.Writer w, java.lang.Object value) throws java.io.IOException, StreamWriteException, DatabindException
Method that can be used to serialize any Java value as JSON output, using Writer provided.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 whenJsonGenerator
we construct is closed).- Throws:
java.io.IOException
StreamWriteException
DatabindException
-
writeValueAsString
public java.lang.String writeValueAsString(java.lang.Object value) throws JsonProcessingException
Method that can be used to serialize any Java value as a String. Functionally equivalent to callingwriteValue(Writer,Object)
withStringWriter
and constructing String, but more efficient.Note: prior to version 2.1, throws clause included
IOException
; 2.1 removed it.- Throws:
JsonProcessingException
-
writeValueAsBytes
public byte[] writeValueAsBytes(java.lang.Object value) throws JsonProcessingException
Method that can be used to serialize any Java value as a byte array. Functionally equivalent to callingwriteValue(Writer,Object)
withByteArrayOutputStream
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.- Throws:
JsonProcessingException
-
writer
public ObjectWriter writer()
Convenience method for constructingObjectWriter
with default settings.
-
writer
public ObjectWriter writer(SerializationFeature feature)
Factory method for constructingObjectWriter
with specified feature enabled (compared to settings that this mapper instance has).
-
writer
public ObjectWriter writer(SerializationFeature first, SerializationFeature... other)
Factory method for constructingObjectWriter
with specified features enabled (compared to settings that this mapper instance has).
-
writer
public ObjectWriter writer(java.text.DateFormat df)
Factory method for constructingObjectWriter
that will serialize objects using specifiedDateFormat
; or, if null passed, using timestamp (64-bit number.
-
writerWithView
public ObjectWriter writerWithView(java.lang.Class<?> serializationView)
Factory method for constructingObjectWriter
that will serialize objects using specified JSON View (filter).
-
writerFor
public ObjectWriter writerFor(java.lang.Class<?> rootType)
Factory method for constructingObjectWriter
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.
- Since:
- 2.5
-
writerFor
public ObjectWriter writerFor(TypeReference<?> rootType)
Factory method for constructingObjectWriter
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.
- Since:
- 2.5
-
writerFor
public ObjectWriter writerFor(JavaType rootType)
Factory method for constructingObjectWriter
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.
- Since:
- 2.5
-
writer
public ObjectWriter writer(PrettyPrinter pp)
Factory method for constructingObjectWriter
that will serialize objects using specified pretty printer for indentation (or if null, no pretty printer)
-
writerWithDefaultPrettyPrinter
public ObjectWriter writerWithDefaultPrettyPrinter()
Factory method for constructingObjectWriter
that will serialize objects using the default pretty printer for indentation
-
writer
public ObjectWriter writer(FilterProvider filterProvider)
Factory method for constructingObjectWriter
that will serialize objects using specified filter provider.
-
writer
public ObjectWriter writer(FormatSchema schema)
Factory method for constructingObjectWriter
that will pass specific schema object toJsonGenerator
used for writing content.- Parameters:
schema
- Schema to pass to generator
-
writer
public ObjectWriter writer(Base64Variant defaultBase64)
Factory method for constructingObjectWriter
that will use specified Base64 encoding variant for Base64-encoded binary data.- Since:
- 2.1
-
writer
public ObjectWriter writer(CharacterEscapes escapes)
Factory method for constructingObjectReader
that will use specified character escaping details for output.- Since:
- 2.3
-
writer
public ObjectWriter writer(ContextAttributes attrs)
Factory method for constructingObjectWriter
that will use specified default attributes.- Since:
- 2.3
-
writerWithType
@Deprecated public ObjectWriter writerWithType(java.lang.Class<?> rootType)
Deprecated.Since 2.5, usewriterFor(Class)
instead
-
writerWithType
@Deprecated public ObjectWriter writerWithType(TypeReference<?> rootType)
Deprecated.Since 2.5, usewriterFor(TypeReference)
instead
-
writerWithType
@Deprecated public ObjectWriter writerWithType(JavaType rootType)
Deprecated.Since 2.5, usewriterFor(JavaType)
instead
-
reader
public ObjectReader reader()
Factory method for constructingObjectReader
with default settings. Note that the resulting instance is NOT usable as is, without defining expected value type.
-
reader
public ObjectReader reader(DeserializationFeature feature)
Factory method for constructingObjectReader
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.
-
reader
public ObjectReader reader(DeserializationFeature first, DeserializationFeature... other)
Factory method for constructingObjectReader
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.
-
readerForUpdating
public ObjectReader readerForUpdating(java.lang.Object valueToUpdate)
Factory method for constructingObjectReader
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 ofObjectReader
-
readerFor
public ObjectReader readerFor(JavaType type)
Factory method for constructingObjectReader
that will read or update instances of specified type- Since:
- 2.6
-
readerFor
public ObjectReader readerFor(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read or update instances of specified type- Since:
- 2.6
-
readerFor
public ObjectReader readerFor(TypeReference<?> type)
Factory method for constructingObjectReader
that will read or update instances of specified type- Since:
- 2.6
-
readerForArrayOf
public ObjectReader readerForArrayOf(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read values of a typeList<type>
. Functionally same as:readerFor(type[].class);
- Since:
- 2.11
-
readerForListOf
public ObjectReader readerForListOf(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read or update instances of a typeList<type>
. Functionally same as:readerFor(new TypeReference<List<type>>() { });
- Since:
- 2.11
-
readerForMapOf
public ObjectReader readerForMapOf(java.lang.Class<?> type)
Factory method for constructingObjectReader
that will read or update instances of a typeMap<String, type>
Functionally same as:readerFor(new TypeReference<Map<String, type>>() { });
- Since:
- 2.11
-
reader
public ObjectReader reader(JsonNodeFactory f)
Factory method for constructingObjectReader
that will use specifiedJsonNodeFactory
for constructing JSON trees.
-
reader
public ObjectReader reader(FormatSchema schema)
Factory method for constructingObjectReader
that will pass specific schema object toJsonParser
used for reading content.- Parameters:
schema
- Schema to pass to parser
-
reader
public ObjectReader reader(InjectableValues injectableValues)
Factory method for constructingObjectReader
that will use specified injectable values.- Parameters:
injectableValues
- Injectable values to use
-
readerWithView
public ObjectReader readerWithView(java.lang.Class<?> view)
Factory method for constructingObjectReader
that will deserialize objects using specified JSON View (filter).
-
reader
public ObjectReader reader(Base64Variant defaultBase64)
Factory method for constructingObjectReader
that will use specified Base64 encoding variant for Base64-encoded binary data.- Since:
- 2.1
-
reader
public ObjectReader reader(ContextAttributes attrs)
Factory method for constructingObjectReader
that will use specified default attributes.- Since:
- 2.3
-
reader
@Deprecated public ObjectReader reader(JavaType type)
Deprecated.Since 2.5, usereaderFor(JavaType)
instead
-
reader
@Deprecated public ObjectReader reader(java.lang.Class<?> type)
Deprecated.Since 2.5, usereaderFor(Class)
instead
-
reader
@Deprecated public ObjectReader reader(TypeReference<?> type)
Deprecated.Since 2.5, usereaderFor(TypeReference)
instead
-
convertValue
public <T> T convertValue(java.lang.Object fromValue, java.lang.Class<T> toValueType) throws java.lang.IllegalArgumentException
Convenience method for doing two-step conversion from given value, into instance of given value type, by writing value into temporary buffer and reading from the buffer into specified target type.This method is functionally similar to first serializing given value into JSON, and then binding JSON data into value of given type, but should be more efficient since full serialization does not (need to) occur. However, same converters (serializers, deserializers) will be used as for data binding, meaning same object mapper configuration works.
Note that behavior changed slightly between Jackson 2.9 and 2.10 so that whereas earlier some optimizations were used to avoid write/read cycle in case input was of target type, from 2.10 onwards full processing is always performed. See databind#2220 for full details of the change.
Further note that it is possible that in some cases behavior does differ from full serialize-then-deserialize cycle: in most case differences are unintentional (that is, flaws to fix) and should be reported, but the behavior is not guaranteed to be 100% the same: the goal is to allow efficient value conversions for structurally compatible Objects, according to standard Jackson configuration.
Finally, this functionality is not designed to support "advanced" use cases, such as conversion of polymorphic values, or cases where Object Identity is used.
- Throws:
java.lang.IllegalArgumentException
- If conversion fails due to incompatible type; if so, root cause will contain underlying checked exception data binding functionality threw
-
convertValue
public <T> T convertValue(java.lang.Object fromValue, TypeReference<T> toValueTypeRef) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
convertValue
public <T> T convertValue(java.lang.Object fromValue, JavaType toValueType) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
updateValue
public <T> T updateValue(T valueToUpdate, java.lang.Object overrides) throws JsonMappingException
Convenience method similar toconvertValue(Object, JavaType)
but one in whichImplementation is approximately as follows:
- Serialize `updateWithValue` into
TokenBuffer
- Construct
ObjectReader
with `valueToUpdate` (usingreaderForUpdating(Object)
) - Construct
JsonParser
(usingTokenBuffer.asParser()
) - Update using
ObjectReader.readValue(JsonParser)
. - Return `valueToUpdate`
Note that update is "shallow" in that only first level of properties (or, immediate contents of container to update) are modified, unless properties themselves indicate that merging should be applied for contents. Such merging can be specified using annotations (see
JsonMerge
) as well as using "config overrides" (seeconfigOverride(Class)
andsetDefaultMergeable(Boolean)
).- Parameters:
valueToUpdate
- Object to updateoverrides
- Object to conceptually serialize and merge into value to update; can be thought of as a provider for overrides to apply.- Returns:
- Either the first argument (`valueToUpdate`), if it is mutable; or a result of creating new instance that is result of "merging" values (for example, "updating" a Java array will create a new array)
- Throws:
JsonMappingException
- if there are structural incompatibilities that prevent update.- Since:
- 2.9
- Serialize `updateWithValue` into
-
generateJsonSchema
@Deprecated public JsonSchema generateJsonSchema(java.lang.Class<?> t) throws JsonMappingException
Deprecated.Since 2.6 use external JSON Schema generator (https://github.com/FasterXML/jackson-module-jsonSchema) (which under the hood callsacceptJsonFormatVisitor(JavaType, JsonFormatVisitorWrapper)
)Generate Json-schema instance for specified class.- Parameters:
t
- The class to generate schema for- Returns:
- Constructed JSON schema.
- Throws:
JsonMappingException
-
acceptJsonFormatVisitor
public void acceptJsonFormatVisitor(java.lang.Class<?> type, JsonFormatVisitorWrapper visitor) throws JsonMappingException
Method for visiting type hierarchy for given type, using specified visitor.This method can be used for things like generating JSON Schema instance for specified type.
- Parameters:
type
- Type to generate schema for (possibly with generic signature)- Throws:
JsonMappingException
- Since:
- 2.1
-
acceptJsonFormatVisitor
public void acceptJsonFormatVisitor(JavaType type, JsonFormatVisitorWrapper visitor) throws JsonMappingException
Method for visiting type hierarchy for given type, using specified visitor. Visitation usesSerializer
hierarchy and related propertiesThis method can be used for things like generating JSON Schema instance for specified type.
- Parameters:
type
- Type to generate schema for (possibly with generic signature)- Throws:
JsonMappingException
- Since:
- 2.1
-
-