public class ObjectReader extends ObjectCodec implements Versioned, Serializable
Uses "mutant factory" pattern so that instances are immutable
(and thus fully thread-safe with no external synchronization);
new instances are constructed for different configurations.
Instances are initially constructed by ObjectMapper and can be
reused, shared, cached; both because of thread-safety and because
instances are relatively light-weight.
NOTE: this class is NOT meant as sub-classable (with Jackson 2.8 and above) by users. It is left as non-final mostly to allow frameworks that require bytecode generation for proxying and similar use cases, but there is no expecation that functionality should be extended by sub-classing.
| Modifier and Type | Field and Description |
|---|---|
protected DeserializationConfig |
_config
General serialization configuration settings; while immutable,
can use copy-constructor to create modified instances as necessary.
|
protected DefaultDeserializationContext |
_context
Blueprint instance of deserialization context; used for creating
actual instance when needed.
|
protected DataFormatReaders |
_dataFormatReaders
Optional detector used for auto-detecting data format that byte-based
input uses.
|
protected InjectableValues |
_injectableValues
Values that can be injected during deserialization, if any.
|
protected JavaType |
_jsonNodeType
|
protected JsonFactory |
_parserFactory
Factory used for constructing
JsonGenerators |
protected JsonDeserializer<Object> |
_rootDeserializer
We may pre-fetch deserializer as soon as
_valueType
is known, and if so, reuse it afterwards. |
protected ConcurrentHashMap<JavaType,JsonDeserializer<Object>> |
_rootDeserializers
Root-level cached deserializers.
|
protected FormatSchema |
_schema
When using data format that uses a schema, schema is passed
to parser.
|
protected boolean |
_unwrapRoot
Flag that indicates whether root values are expected to be unwrapped or not
|
protected Object |
_valueToUpdate
Instance to update with data binding; if any.
|
protected JavaType |
_valueType
Declared type of value to instantiate during deserialization.
|
| Modifier | Constructor and Description |
|---|---|
protected |
ObjectReader(ObjectMapper mapper,
DeserializationConfig config)
Constructor used by
ObjectMapper for initial instantiation |
protected |
ObjectReader(ObjectMapper mapper,
DeserializationConfig config,
JavaType valueType,
Object valueToUpdate,
FormatSchema schema,
InjectableValues injectableValues)
Constructor called when a root deserializer should be fetched based
on other configuration.
|
protected |
ObjectReader(ObjectReader base,
DeserializationConfig config)
Copy constructor used when modifying simple feature flags
|
protected |
ObjectReader(ObjectReader base,
DeserializationConfig config,
JavaType valueType,
JsonDeserializer<Object> rootDeser,
Object valueToUpdate,
FormatSchema schema,
InjectableValues injectableValues,
DataFormatReaders dataFormatReaders)
Copy constructor used for building variations.
|
protected |
ObjectReader(ObjectReader base,
JsonFactory f) |
protected |
ObjectReader(ObjectReader base,
TokenFilter filter) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
_assertNotNull(String paramName,
Object src) |
protected Object |
_bind(JsonParser p,
Object valueToUpdate)
Actual implementation of value reading+binding operation.
|
protected Object |
_bindAndClose(JsonParser p0) |
protected JsonNode |
_bindAndCloseAsTree(JsonParser p0) |
protected <T> MappingIterator<T> |
_bindAndReadValues(JsonParser p) |
protected JsonNode |
_bindAsTree(JsonParser p) |
protected JsonNode |
_bindAsTreeOrNull(JsonParser p)
Same as
_bindAsTree(com.fasterxml.jackson.core.JsonParser) except end-of-input is reported by returning
null, not "missing node" |
protected JsonParser |
_considerFilter(JsonParser p,
boolean multiValue)
Consider filter when creating JsonParser.
|
protected Object |
_detectBindAndClose(byte[] src,
int offset,
int length) |
protected Object |
_detectBindAndClose(DataFormatReaders.Match match,
boolean forceClosing) |
protected JsonNode |
_detectBindAndCloseAsTree(InputStream in) |
protected <T> MappingIterator<T> |
_detectBindAndReadValues(DataFormatReaders.Match match,
boolean forceClosing) |
protected JsonDeserializer<Object> |
_findRootDeserializer(DeserializationContext ctxt)
Method called to locate deserializer for the passed root-level value.
|
protected JsonDeserializer<Object> |
_findTreeDeserializer(DeserializationContext ctxt) |
protected void |
_initForMultiRead(DeserializationContext ctxt,
JsonParser p)
Alternative to
_initForReading(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.core.JsonParser) used in cases where reading
of multiple values means that we may or may not want to advance the stream,
but need to do other initialization. |
protected JsonToken |
_initForReading(DeserializationContext ctxt,
JsonParser p) |
protected InputStream |
_inputStream(File f) |
protected InputStream |
_inputStream(URL src) |
protected JavaType |
_jsonNodeType() |
protected ObjectReader |
_new(ObjectReader base,
DeserializationConfig config)
Overridable factory method called by various "withXxx()" methods
|
protected ObjectReader |
_new(ObjectReader base,
DeserializationConfig config,
JavaType valueType,
JsonDeserializer<Object> rootDeser,
Object valueToUpdate,
FormatSchema schema,
InjectableValues injectableValues,
DataFormatReaders dataFormatReaders)
Overridable factory method called by various "withXxx()" methods
|
protected ObjectReader |
_new(ObjectReader base,
JsonFactory f)
Overridable factory method called by various "withXxx()" methods
|
protected <T> MappingIterator<T> |
_newIterator(JsonParser p,
DeserializationContext ctxt,
JsonDeserializer<?> deser,
boolean parserManaged)
Factory method used to create
MappingIterator instances;
either default, or custom subtype. |
protected JsonDeserializer<Object> |
_prefetchRootDeserializer(JavaType valueType)
Method called to locate deserializer ahead of time, if permitted
by configuration.
|
protected void |
_reportUndetectableSource(Object src) |
protected void |
_reportUnkownFormat(DataFormatReaders detector,
DataFormatReaders.Match match)
Method called to indicate that format detection failed to detect format
of given input
|
protected Object |
_unwrapAndDeserialize(JsonParser p,
DeserializationContext ctxt,
JavaType rootType,
JsonDeserializer<Object> deser) |
protected void |
_verifyNoTrailingTokens(JsonParser p,
DeserializationContext ctxt,
JavaType bindType) |
protected void |
_verifySchemaType(FormatSchema schema) |
protected ObjectReader |
_with(DeserializationConfig newConfig) |
ObjectReader |
at(JsonPointer pointer)
Convenience method to bind from
JsonPointer
JsonPointerBasedFilter is registered and will be used for parsing later. |
ObjectReader |
at(String pointerExpr)
Convenience method to bind from
JsonPointer. |
JsonNode |
createArrayNode() |
protected DefaultDeserializationContext |
createDeserializationContext(JsonParser p)
Internal helper method called to create an instance of
DeserializationContext
for deserializing a single root value. |
JsonParser |
createNonBlockingByteArrayParser()
Factory method for constructing properly initialized
JsonParser
to read content using non-blocking (asynchronous) mode. |
JsonNode |
createObjectNode() |
JsonParser |
createParser(byte[] content)
Factory method for constructing properly initialized
JsonParser
to read content from specified byte array. |
JsonParser |
createParser(byte[] content,
int offset,
int len)
Factory method for constructing properly initialized
JsonParser
to read content from specified byte array. |
JsonParser |
createParser(char[] content)
Factory method for constructing properly initialized
JsonParser
to read content from specified character array
Parser is not managed (or "owned") by ObjectReader: 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 initialized
JsonParser
to read content from specified character array. |
JsonParser |
createParser(DataInput content)
Factory method for constructing properly initialized
JsonParser
to read content using specified DataInput. |
JsonParser |
createParser(File src)
Factory method for constructing properly initialized
JsonParser
to read content from specified File. |
JsonParser |
createParser(InputStream in)
Factory method for constructing properly initialized
JsonParser
to read content using specified InputStream. |
JsonParser |
createParser(Reader r)
Factory method for constructing properly initialized
JsonParser
to read content using specified Reader. |
JsonParser |
createParser(String content)
Factory method for constructing properly initialized
JsonParser
to read content from specified String. |
JsonParser |
createParser(URL src)
Factory method for constructing properly initialized
JsonParser
to read content from specified File. |
ObjectReader |
forType(Class<?> valueType)
Method for constructing a new reader instance that is configured
to data bind into specified type.
|
ObjectReader |
forType(JavaType valueType)
Method for constructing a new reader instance that is configured
to data bind into specified type.
|
ObjectReader |
forType(TypeReference<?> valueTypeRef)
Method for constructing a new reader instance that is configured
to data bind into specified type.
|
ContextAttributes |
getAttributes() |
DeserializationConfig |
getConfig() |
JsonFactory |
getFactory() |
InjectableValues |
getInjectableValues() |
TypeFactory |
getTypeFactory() |
JavaType |
getValueType() |
boolean |
isEnabled(DeserializationFeature f) |
boolean |
isEnabled(JsonParser.Feature f) |
boolean |
isEnabled(MapperFeature f) |
boolean |
isEnabled(StreamReadFeature f) |
JsonNode |
missingNode() |
JsonNode |
nullNode() |
JsonNode |
readTree(byte[] json)
Same as
readTree(InputStream) except content read from
passed-in byte array. |
JsonNode |
readTree(byte[] json,
int offset,
int len)
Same as
readTree(InputStream) except content read from
passed-in byte array. |
JsonNode |
readTree(DataInput src)
Same as
readTree(InputStream) except content read using
passed-in DataInput. |
JsonNode |
readTree(InputStream src)
Method that reads content from given input source,
using configuration of this reader, and binds it as JSON Tree.
|
<T extends TreeNode> |
readTree(JsonParser p)
Convenience method that binds content read using given parser, using
configuration of this reader, except that content is bound as
JSON tree instead of configured root value type.
|
JsonNode |
readTree(Reader src)
Same as
readTree(InputStream) except content accessed through
passed-in Reader |
JsonNode |
readTree(String json)
Same as
readTree(InputStream) except content read from
passed-in String |
<T> T |
readValue(byte[] content)
Method that binds content read from given byte array,
using configuration of this reader.
|
<T> T |
readValue(byte[] content,
Class<T> valueType)
Same as
readValue(byte[]) except that target value type
overridden as valueType |
<T> T |
readValue(byte[] buffer,
int offset,
int length)
Method that binds content read from given byte array,
using configuration of this reader.
|
<T> T |
readValue(byte[] buffer,
int offset,
int length,
Class<T> valueType)
Same as
readValue(byte[],int,int) except that target value type
overridden as valueType |
<T> T |
readValue(DataInput src) |
<T> T |
readValue(DataInput content,
Class<T> valueType)
Same as
readValue(DataInput) except that target value type
overridden as valueType |
<T> T |
readValue(File src)
Method that binds content read from given
File
using configuration of this reader. |
<T> T |
readValue(File src,
Class<T> valueType)
Same as
readValue(File) except that target value type
overridden as valueType |
<T> T |
readValue(InputStream src)
Method that binds content read from given input source,
using configuration of this reader.
|
<T> T |
readValue(InputStream src,
Class<T> valueType)
Same as
readValue(InputStream) except that target value type
overridden as valueType |
<T> T |
readValue(JsonNode content)
Convenience method for converting results from given JSON tree into given
value type.
|
<T> T |
readValue(JsonNode content,
Class<T> valueType)
Same as
readValue(JsonNode) except that target value type
overridden as valueType |
<T> T |
readValue(JsonParser p)
Method that binds content read using given parser, using
configuration of this reader, including expected result type.
|
<T> T |
readValue(JsonParser p,
Class<T> valueType)
Convenience method that binds content read using given parser, using
configuration of this reader, except that expected value type
is specified with the call (instead of currently configured root type).
|
<T> T |
readValue(JsonParser p,
JavaType valueType)
Type-safe overloaded method, basically alias for
readValue(JsonParser, ResolvedType). |
<T> T |
readValue(JsonParser p,
ResolvedType valueType)
Convenience method that binds content read using given parser, using
configuration of this reader, except that expected value type
is specified with the call (instead of currently configured root type).
|
<T> T |
readValue(JsonParser p,
TypeReference<T> valueTypeRef)
Convenience method that binds content read using given parser, using
configuration of this reader, except that expected value type
is specified with the call (instead of currently configured root type).
|
<T> T |
readValue(Reader src)
Method that binds content read from given input source,
using configuration of this reader.
|
<T> T |
readValue(Reader src,
Class<T> valueType)
Same as
readValue(Reader) except that target value type
overridden as valueType |
<T> T |
readValue(String src)
Method that binds content read from given JSON string,
using configuration of this reader.
|
<T> T |
readValue(String src,
Class<T> valueType)
Same as
readValue(String) except that target value type
overridden as valueType |
<T> T |
readValue(URL src)
Method that binds content read from given input source,
using configuration of this reader.
|
<T> T |
readValue(URL src,
Class<T> valueType)
Same as
readValue(URL) except that target value type
overridden as valueType |
<T> MappingIterator<T> |
readValues(byte[] src)
Overloaded version of
readValue(InputStream). |
<T> MappingIterator<T> |
readValues(byte[] src,
int offset,
int length)
Overloaded version of
readValue(InputStream). |
<T> MappingIterator<T> |
readValues(DataInput src) |
<T> MappingIterator<T> |
readValues(File src)
Overloaded version of
readValue(InputStream). |
<T> MappingIterator<T> |
readValues(InputStream src)
Method for reading sequence of Objects from parser stream.
|
<T> MappingIterator<T> |
readValues(JsonParser p)
Method for reading sequence of Objects from parser stream.
|
<T> Iterator<T> |
readValues(JsonParser p,
Class<T> valueType)
Convenience method that is equivalent to:
|
<T> Iterator<T> |
readValues(JsonParser p,
JavaType valueType)
Convenience method that is equivalent to:
|
<T> Iterator<T> |
readValues(JsonParser p,
ResolvedType valueType)
Convenience method that is equivalent to:
|
<T> Iterator<T> |
readValues(JsonParser p,
TypeReference<T> valueTypeRef)
Convenience method that is equivalent to:
|
<T> MappingIterator<T> |
readValues(Reader src)
Overloaded version of
readValue(InputStream). |
<T> MappingIterator<T> |
readValues(String json)
Overloaded version of
readValue(InputStream). |
<T> MappingIterator<T> |
readValues(URL src)
Overloaded version of
readValue(InputStream). |
JsonParser |
treeAsTokens(TreeNode n) |
<T> T |
treeToValue(TreeNode n,
Class<T> valueType) |
Version |
version()
Method that will return version information stored in and read from jar
that contains this class.
|
ObjectReader |
with(Base64Variant defaultBase64) |
ObjectReader |
with(ContextAttributes attrs) |
ObjectReader |
with(DeserializationConfig config)
Mutant factory method that will construct a new instance that has
specified underlying
DeserializationConfig. |
ObjectReader |
with(DeserializationFeature feature)
Method for constructing a new reader instance that is configured
with specified feature enabled.
|
ObjectReader |
with(DeserializationFeature first,
DeserializationFeature... other)
Method for constructing a new reader instance that is configured
with specified features enabled.
|
ObjectReader |
with(FormatFeature feature)
Method for constructing a new reader instance that is configured
with specified feature enabled.
|
ObjectReader |
with(FormatSchema schema)
Method for constructing a new instance with configuration that
passes specified
FormatSchema to JsonParser that
is constructed for parsing content. |
ObjectReader |
with(InjectableValues injectableValues)
Method for constructing a new instance with configuration that uses
passed
InjectableValues to provide injectable values. |
ObjectReader |
with(JsonFactory f)
Method for constructing a new reader instance with configuration that uses
passed
JsonFactory for constructing underlying Readers. |
ObjectReader |
with(JsonNodeFactory f)
Method for constructing a new reader instance with configuration that uses
passed
JsonNodeFactory for constructing JsonNode
instances. |
ObjectReader |
with(JsonParser.Feature feature)
Method for constructing a new reader instance that is configured
with specified feature enabled.
|
ObjectReader |
with(Locale l) |
ObjectReader |
with(StreamReadFeature feature)
Method for constructing a new reader instance that is configured
with specified feature enabled.
|
ObjectReader |
with(TimeZone tz) |
ObjectReader |
withAttribute(Object key,
Object value) |
ObjectReader |
withAttributes(Map<?,?> attrs) |
ObjectReader |
withFeatures(DeserializationFeature... features)
Method for constructing a new reader instance that is configured
with specified features enabled.
|
ObjectReader |
withFeatures(FormatFeature... features)
Method for constructing a new reader instance that is configured
with specified features enabled.
|
ObjectReader |
withFeatures(JsonParser.Feature... features)
Method for constructing a new reader instance that is configured
with specified features enabled.
|
ObjectReader |
withFormatDetection(DataFormatReaders readers)
Fluent factory method for constructing a reader that will try to
auto-detect underlying data format, using specified
DataFormatReaders. |
ObjectReader |
withFormatDetection(ObjectReader... readers)
Fluent factory method for constructing a reader that will try to
auto-detect underlying data format, using specified list of
JsonFactory instances, and default DataFormatReaders settings
(for customized DataFormatReaders, you can construct instance yourself). |
ObjectReader |
withHandler(DeserializationProblemHandler h) |
ObjectReader |
without(DeserializationFeature feature)
Method for constructing a new reader instance that is configured
with specified feature disabled.
|
ObjectReader |
without(DeserializationFeature first,
DeserializationFeature... other)
Method for constructing a new reader instance that is configured
with specified features disabled.
|
ObjectReader |
without(FormatFeature feature)
Method for constructing a new reader instance that is configured
with specified feature disabled.
|
ObjectReader |
without(JsonParser.Feature feature)
Method for constructing a new reader instance that is configured
with specified feature disabled.
|
ObjectReader |
without(StreamReadFeature feature)
Method for constructing a new reader instance that is configured
with specified feature disabled.
|
ObjectReader |
withoutAttribute(Object key) |
ObjectReader |
withoutFeatures(DeserializationFeature... features)
Method for constructing a new reader instance that is configured
with specified features disabled.
|
ObjectReader |
withoutFeatures(FormatFeature... features)
Method for constructing a new reader instance that is configured
with specified features disabled.
|
ObjectReader |
withoutFeatures(JsonParser.Feature... features)
Method for constructing a new reader instance that is configured
with specified features disabled.
|
ObjectReader |
withoutRootName()
Convenience method that is same as calling:
withRootName("")
which will forcibly prevent use of root name wrapping when writing
values with this ObjectReader. |
ObjectReader |
withRootName(PropertyName rootName) |
ObjectReader |
withRootName(String rootName)
Method for constructing a new instance with configuration that
specifies what root name to expect for "root name unwrapping".
|
ObjectReader |
withType(Class<?> valueType)
Deprecated.
since 2.5 Use
forType(Class) instead |
ObjectReader |
withType(JavaType valueType)
Deprecated.
since 2.5 Use
forType(JavaType) instead |
ObjectReader |
withType(Type valueType)
Deprecated.
since 2.5 Use
forType(Class) instead |
ObjectReader |
withType(TypeReference<?> valueTypeRef)
Deprecated.
since 2.5 Use
forType(TypeReference) instead |
ObjectReader |
withValueToUpdate(Object value)
Method for constructing a new instance with configuration that
updates passed Object (as root value), instead of constructing
a new value.
|
ObjectReader |
withView(Class<?> activeView)
Method for constructing a new instance with configuration that
uses specified View for filtering.
|
void |
writeTree(JsonGenerator g,
TreeNode rootNode) |
void |
writeValue(JsonGenerator gen,
Object value) |
getJsonFactoryprotected final DeserializationConfig _config
protected final DefaultDeserializationContext _context
protected final JsonFactory _parserFactory
JsonGeneratorsprotected final boolean _unwrapRoot
protected final JavaType _valueType
_valueToUpdate is non-null, only used for
locating deserializer.protected final JsonDeserializer<Object> _rootDeserializer
_valueType
is known, and if so, reuse it afterwards.
This allows avoiding further deserializer lookups and increases
performance a bit on cases where readers are reused.protected final Object _valueToUpdate
ArrayType; array
types cannot be modified because array size is immutable.protected final FormatSchema _schema
protected final InjectableValues _injectableValues
protected final DataFormatReaders _dataFormatReaders
NOTE: If defined non-null, readValue() methods that take
Reader or String input will fail with exception,
because format-detection only works on byte-sources. Also, if format
cannot be detect reliably (as per detector settings),
a JsonParseException will be thrown).
protected final ConcurrentHashMap<JavaType,JsonDeserializer<Object>> _rootDeserializers
ObjectMapper, shared with it.protected transient JavaType _jsonNodeType
protected ObjectReader(ObjectMapper mapper, DeserializationConfig config)
ObjectMapper for initial instantiationprotected ObjectReader(ObjectMapper mapper, DeserializationConfig config, JavaType valueType, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues)
protected ObjectReader(ObjectReader base, DeserializationConfig config, JavaType valueType, JsonDeserializer<Object> rootDeser, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues, DataFormatReaders dataFormatReaders)
protected ObjectReader(ObjectReader base, DeserializationConfig config)
protected ObjectReader(ObjectReader base, JsonFactory f)
protected ObjectReader(ObjectReader base, TokenFilter filter)
public Version version()
version in interface Versionedversion in class ObjectCodecprotected ObjectReader _new(ObjectReader base, JsonFactory f)
protected ObjectReader _new(ObjectReader base, DeserializationConfig config)
protected ObjectReader _new(ObjectReader base, DeserializationConfig config, JavaType valueType, JsonDeserializer<Object> rootDeser, Object valueToUpdate, FormatSchema schema, InjectableValues injectableValues, DataFormatReaders dataFormatReaders)
protected <T> MappingIterator<T> _newIterator(JsonParser p, DeserializationContext ctxt, JsonDeserializer<?> deser, boolean parserManaged)
MappingIterator instances;
either default, or custom subtype.protected JsonToken _initForReading(DeserializationContext ctxt, JsonParser p) throws IOException
IOExceptionprotected void _initForMultiRead(DeserializationContext ctxt, JsonParser p) throws IOException
_initForReading(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.core.JsonParser) used in cases where reading
of multiple values means that we may or may not want to advance the stream,
but need to do other initialization.
Base implementation only sets configured FormatSchema, if any, on parser.
IOExceptionpublic ObjectReader with(DeserializationFeature feature)
public ObjectReader with(DeserializationFeature first, DeserializationFeature... other)
public ObjectReader withFeatures(DeserializationFeature... features)
public ObjectReader without(DeserializationFeature feature)
public ObjectReader without(DeserializationFeature first, DeserializationFeature... other)
public ObjectReader withoutFeatures(DeserializationFeature... features)
public ObjectReader with(JsonParser.Feature feature)
feature - Feature to enablepublic ObjectReader withFeatures(JsonParser.Feature... features)
features - Features to enablepublic ObjectReader without(JsonParser.Feature feature)
feature - Feature to disablepublic ObjectReader withoutFeatures(JsonParser.Feature... features)
features - Features to disablepublic ObjectReader with(StreamReadFeature feature)
public ObjectReader without(StreamReadFeature feature)
public ObjectReader with(FormatFeature feature)
public ObjectReader withFeatures(FormatFeature... features)
public ObjectReader without(FormatFeature feature)
public ObjectReader withoutFeatures(FormatFeature... features)
public ObjectReader at(String pointerExpr)
JsonPointer.
JsonPointerBasedFilter is registered and will be used for parsing later.public ObjectReader at(JsonPointer pointer)
JsonPointer
JsonPointerBasedFilter is registered and will be used for parsing later.public ObjectReader with(DeserializationConfig config)
DeserializationConfig.
NOTE: use of this method is not recommended, as there are many other re-configuration methods available.
public ObjectReader with(InjectableValues injectableValues)
InjectableValues to provide injectable values.
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader with(JsonNodeFactory f)
JsonNodeFactory for constructing JsonNode
instances.
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader with(JsonFactory f)
JsonFactory for constructing underlying Readers.
NOTE: only factories that DO NOT REQUIRE SPECIAL MAPPERS
(that is, ones that return false for
JsonFactory.requiresCustomCodec()) can be used: trying
to use one that requires custom codec will throw exception
public ObjectReader withRootName(String rootName)
MapperConfigBase.withRootName(String) for
details.
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader withRootName(PropertyName rootName)
public ObjectReader withoutRootName()
withRootName("")
which will forcibly prevent use of root name wrapping when writing
values with this ObjectReader.public ObjectReader with(FormatSchema schema)
FormatSchema to JsonParser that
is constructed for parsing content.
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader forType(JavaType valueType)
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader forType(Class<?> valueType)
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader forType(TypeReference<?> valueTypeRef)
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
@Deprecated public ObjectReader withType(JavaType valueType)
forType(JavaType) instead@Deprecated public ObjectReader withType(Class<?> valueType)
forType(Class) instead@Deprecated public ObjectReader withType(Type valueType)
forType(Class) instead@Deprecated public ObjectReader withType(TypeReference<?> valueTypeRef)
forType(TypeReference) insteadpublic ObjectReader withValueToUpdate(Object value)
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader withView(Class<?> activeView)
Note that the method does NOT change state of this reader, but rather construct and returns a newly configured instance.
public ObjectReader with(Locale l)
public ObjectReader with(TimeZone tz)
public ObjectReader withHandler(DeserializationProblemHandler h)
public ObjectReader with(Base64Variant defaultBase64)
public ObjectReader withFormatDetection(ObjectReader... readers)
JsonFactory instances, and default DataFormatReaders settings
(for customized DataFormatReaders, you can construct instance yourself).
to construct appropriate JsonParser for actual parsing.
Note: since format detection only works with byte sources, it is possible to get a failure from some 'readValue()' methods. Also, if input cannot be reliably (enough) detected as one of specified types, an exception will be thrown.
Note: not all JsonFactory types can be passed: specifically, ones that
require "custom codec" (like XML factory) will not work. Instead, use
method that takes ObjectReader instances instead of factories.
readers - Data formats accepted, in decreasing order of priority (that is,
matches checked in listed order, first match wins)public ObjectReader withFormatDetection(DataFormatReaders readers)
DataFormatReaders.
NOTE: since format detection only works with byte sources, it is possible to get a failure from some 'readValue()' methods. Also, if input cannot be reliably (enough) detected as one of specified types, an exception will be thrown.
readers - DataFormatReaders to use for detecting underlying format.public ObjectReader with(ContextAttributes attrs)
public ObjectReader withAttributes(Map<?,?> attrs)
public ObjectReader withAttribute(Object key, Object value)
public ObjectReader withoutAttribute(Object key)
protected ObjectReader _with(DeserializationConfig newConfig)
public boolean isEnabled(DeserializationFeature f)
public boolean isEnabled(MapperFeature f)
public boolean isEnabled(JsonParser.Feature f)
public boolean isEnabled(StreamReadFeature f)
public DeserializationConfig getConfig()
public JsonFactory getFactory()
getFactory in class ObjectCodecpublic TypeFactory getTypeFactory()
public ContextAttributes getAttributes()
public InjectableValues getInjectableValues()
public JavaType getValueType()
public JsonParser createParser(File src) throws IOException
JsonParser
to read content from specified File.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(URL src) throws IOException
JsonParser
to read content from specified File.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(InputStream in) throws IOException
JsonParser
to read content using specified InputStream.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(Reader r) throws IOException
JsonParser
to read content using specified Reader.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(byte[] content) throws IOException
JsonParser
to read content from specified byte array.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(byte[] content, int offset, int len) throws IOException
JsonParser
to read content from specified byte array.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(String content) throws IOException
JsonParser
to read content from specified String.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(char[] content) throws IOException
JsonParser
to read content from specified character array
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(char[] content, int offset, int len) throws IOException
JsonParser
to read content from specified character array.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createParser(DataInput content) throws IOException
JsonParser
to read content using specified DataInput.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic JsonParser createNonBlockingByteArrayParser() throws IOException
JsonParser
to read content using non-blocking (asynchronous) mode.
Parser is not managed (or "owned") by ObjectReader: caller is responsible
for properly closing it once content reading is complete.IOExceptionpublic <T> T readValue(JsonParser p) throws IOException
withValueToUpdate(Object).
NOTE: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
IOExceptionpublic <T> T readValue(JsonParser p, Class<T> valueType) throws IOException
withValueToUpdate(Object).
NOTE: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
readValue in class ObjectCodecIOExceptionpublic <T> T readValue(JsonParser p, TypeReference<T> valueTypeRef) throws IOException
withValueToUpdate(Object).
NOTE: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
readValue in class ObjectCodecIOExceptionpublic <T> T readValue(JsonParser p, ResolvedType valueType) throws IOException
withValueToUpdate(Object).
NOTE: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
readValue in class ObjectCodecIOExceptionpublic <T> T readValue(JsonParser p, JavaType valueType) throws IOException
readValue(JsonParser, ResolvedType).
NOTE: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
IOExceptionpublic <T> Iterator<T> readValues(JsonParser p, Class<T> valueType) throws IOException
withType(valueType).readValues(p);
Method reads a 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 surrounding START_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: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
readValues in class ObjectCodecIOExceptionpublic <T> Iterator<T> readValues(JsonParser p, TypeReference<T> valueTypeRef) throws IOException
withType(valueTypeRef).readValues(p);
Method reads a 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 surrounding START_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: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
readValues in class ObjectCodecIOExceptionpublic <T> Iterator<T> readValues(JsonParser p, ResolvedType valueType) throws IOException
withType(valueType).readValues(p);
Method reads a 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 surrounding START_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: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
readValues in class ObjectCodecIOExceptionpublic <T> Iterator<T> readValues(JsonParser p, JavaType valueType) throws IOException
withType(valueType).readValues(p);
Method reads a 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 surrounding START_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: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
IOExceptionpublic JsonNode createArrayNode()
createArrayNode in class ObjectCodecpublic JsonNode createObjectNode()
createObjectNode in class ObjectCodecpublic JsonNode missingNode()
missingNode in class TreeCodecpublic JsonParser treeAsTokens(TreeNode n)
treeAsTokens in class ObjectCodecpublic <T extends TreeNode> T readTree(JsonParser p) throws IOException
JsonNode that represents the root of the resulting tree, if there
was content to read, or null if no more content is accessible
via passed JsonParser.
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", NOT null
Note: if an object was specified with withValueToUpdate(java.lang.Object), it
will be ignored.
NOTE: this method never tries to auto-detect format, since actual (data-format specific) parser is given.
readTree in class ObjectCodecIOExceptionpublic void writeTree(JsonGenerator g, TreeNode rootNode)
writeTree in class ObjectCodecpublic <T> T readValue(InputStream src) throws IOException
withValueToUpdate(Object).src - Source to read content fromIOExceptionpublic <T> T readValue(InputStream src, Class<T> valueType) throws IOException
readValue(InputStream) except that target value type
overridden as valueTypesrc - Source to read content fromvalueType - Target type to bind content toIOExceptionpublic <T> T readValue(Reader src) throws IOException
withValueToUpdate(Object).src - Source to read content fromIOExceptionpublic <T> T readValue(Reader src, Class<T> valueType) throws IOException
readValue(Reader) except that target value type
overridden as valueTypesrc - Source to read content fromvalueType - Target type to bind content toIOExceptionpublic <T> T readValue(String src) throws JsonProcessingException, JsonMappingException
withValueToUpdate(Object).src - String that contains content to readJsonProcessingExceptionJsonMappingExceptionpublic <T> T readValue(String src, Class<T> valueType) throws IOException
readValue(String) except that target value type
overridden as valueTypesrc - String that contains content to readvalueType - Target type to bind content toIOExceptionpublic <T> T readValue(byte[] content)
throws IOException
withValueToUpdate(Object).content - Byte array that contains encoded content to readIOExceptionpublic <T> T readValue(byte[] content,
Class<T> valueType)
throws IOException
readValue(byte[]) except that target value type
overridden as valueTypecontent - Byte array that contains encoded content to readvalueType - Target type to bind content toIOExceptionpublic <T> T readValue(byte[] buffer,
int offset,
int length)
throws IOException
withValueToUpdate(Object).buffer - Byte array that contains encoded content to readoffset - Offset of the first content byte in bufferlength - Length of content in buffer, in bytesIOExceptionpublic <T> T readValue(byte[] buffer,
int offset,
int length,
Class<T> valueType)
throws IOException
readValue(byte[],int,int) except that target value type
overridden as valueTypebuffer - Byte array that contains encoded content to readoffset - Offset of the first content byte in bufferlength - Length of content in buffer, in bytesvalueType - Target type to bind content toIOExceptionpublic <T> T readValue(File src) throws IOException
File
using configuration of this reader.
Value return is either newly constructed, or root value that
was specified with withValueToUpdate(Object).src - File that contains content to readIOExceptionpublic <T> T readValue(File src, Class<T> valueType) throws IOException
readValue(File) except that target value type
overridden as valueTypesrc - File that contains content to readvalueType - Target type to bind content toIOExceptionpublic <T> T readValue(URL src) throws IOException
withValueToUpdate(Object).
NOTE: handling of URL is delegated to
JsonFactory.createParser(java.net.URL) and usually simply
calls URL.openStream(), meaning no special handling
is done. If different HTTP connection options are needed you will need
to create InputStream separately.
IOExceptionpublic <T> T readValue(URL src, Class<T> valueType) throws IOException
readValue(URL) except that target value type
overridden as valueTypesrc - URL pointing to resource that contains content to readvalueType - Target type to bind content toIOExceptionpublic <T> T readValue(JsonNode content) throws IOException
objectReader.readValue(src.traverse())
content - Tree that contains content to convertIOExceptionpublic <T> T readValue(JsonNode content, Class<T> valueType) throws IOException
readValue(JsonNode) except that target value type
overridden as valueTypecontent - Tree that contains content to convertvalueType - Target type to convert content toIOExceptionpublic <T> T readValue(DataInput src) throws IOException
IOExceptionpublic <T> T readValue(DataInput content, Class<T> valueType) throws IOException
readValue(DataInput) except that target value type
overridden as valueTypecontent - DataInput that contains content to readvalueType - Target type to bind content toIOExceptionpublic JsonNode readTree(InputStream src) throws IOException
JsonNode that represents the root of the resulting tree, if there
was content to read, or "missing node" (instance of JsonNode for which
JsonNode.isMissingNode() returns true, and behaves otherwise similar to
"null node") if no more content is accessible through passed-in input source.
NOTE! Behavior with end-of-input (no more content) differs between this
readTree method, and readTree(JsonParser) -- latter returns
null for "no content" case.
Note that if an object was specified with a call to
withValueToUpdate(Object)
it will just be ignored; result is always a newly constructed
JsonNode instance.
IOExceptionpublic JsonNode readTree(Reader src) throws IOException
readTree(InputStream) except content accessed through
passed-in ReaderIOExceptionpublic JsonNode readTree(String json) throws JsonProcessingException, JsonMappingException
readTree(InputStream) except content read from
passed-in Stringpublic JsonNode readTree(byte[] json) throws IOException
readTree(InputStream) except content read from
passed-in byte array.IOExceptionpublic JsonNode readTree(byte[] json, int offset, int len) throws IOException
readTree(InputStream) except content read from
passed-in byte array.IOExceptionpublic JsonNode readTree(DataInput src) throws IOException
readTree(InputStream) except content read using
passed-in DataInput.IOExceptionpublic <T> MappingIterator<T> readValues(JsonParser p) throws IOException
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 surrounding START_ARRAY but rather
to the token following it.
IOExceptionpublic <T> MappingIterator<T> readValues(InputStream src) throws IOException
Sequence can be either wrapped or unwrapped root-level sequence:
wrapped means that the elements are enclosed in JSON Array;
and unwrapped that elements are directly accessed at main level.
Assumption is that iff the first token of the document is
START_ARRAY, we have a wrapped sequence; otherwise
unwrapped. For wrapped sequences, leading START_ARRAY
is skipped, so that for both cases, underlying JsonParser
will point to what is expected to be the first token of the first
element.
Note that the wrapped vs unwrapped logic means that it is NOT
possible to use this method for reading an unwrapped sequence
of elements written as JSON Arrays: to read such sequences, one
has to use readValues(JsonParser), making sure parser
points to the first token of the first element (i.e. the second
START_ARRAY which is part of the first element).
IOExceptionpublic <T> MappingIterator<T> readValues(Reader src) throws IOException
readValue(InputStream).IOExceptionpublic <T> MappingIterator<T> readValues(String json) throws IOException
readValue(InputStream).json - String that contains JSON content to parseIOExceptionpublic <T> MappingIterator<T> readValues(byte[] src, int offset, int length) throws IOException
readValue(InputStream).IOExceptionpublic final <T> MappingIterator<T> readValues(byte[] src) throws IOException
readValue(InputStream).IOExceptionpublic <T> MappingIterator<T> readValues(File src) throws IOException
readValue(InputStream).IOExceptionpublic <T> MappingIterator<T> readValues(URL src) throws IOException
readValue(InputStream).
NOTE: handling of URL is delegated to
JsonFactory.createParser(java.net.URL) and usually simply
calls URL.openStream(), meaning no special handling
is done. If different HTTP connection options are needed you will need
to create InputStream separately.
src - URL to read to access JSON content to parse.IOExceptionpublic <T> MappingIterator<T> readValues(DataInput src) throws IOException
IOExceptionpublic <T> T treeToValue(TreeNode n, Class<T> valueType) throws JsonProcessingException
treeToValue in class ObjectCodecJsonProcessingExceptionpublic void writeValue(JsonGenerator gen, Object value) throws IOException
writeValue in class ObjectCodecIOExceptionprotected Object _bind(JsonParser p, Object valueToUpdate) throws IOException
IOExceptionprotected Object _bindAndClose(JsonParser p0) throws IOException
IOExceptionprotected final JsonNode _bindAndCloseAsTree(JsonParser p0) throws IOException
IOExceptionprotected final JsonNode _bindAsTree(JsonParser p) throws IOException
IOExceptionprotected final JsonNode _bindAsTreeOrNull(JsonParser p) throws IOException
_bindAsTree(com.fasterxml.jackson.core.JsonParser) except end-of-input is reported by returning
null, not "missing node"IOExceptionprotected <T> MappingIterator<T> _bindAndReadValues(JsonParser p) throws IOException
IOExceptionprotected Object _unwrapAndDeserialize(JsonParser p, DeserializationContext ctxt, JavaType rootType, JsonDeserializer<Object> deser) throws IOException
IOExceptionprotected JsonParser _considerFilter(JsonParser p, boolean multiValue)
protected final void _verifyNoTrailingTokens(JsonParser p, DeserializationContext ctxt, JavaType bindType) throws IOException
IOExceptionprotected Object _detectBindAndClose(byte[] src, int offset, int length) throws IOException
IOExceptionprotected Object _detectBindAndClose(DataFormatReaders.Match match, boolean forceClosing) throws IOException
IOExceptionprotected <T> MappingIterator<T> _detectBindAndReadValues(DataFormatReaders.Match match, boolean forceClosing) throws IOException
IOExceptionprotected JsonNode _detectBindAndCloseAsTree(InputStream in) throws IOException
IOExceptionprotected void _reportUnkownFormat(DataFormatReaders detector, DataFormatReaders.Match match) throws JsonProcessingException
JsonProcessingExceptionprotected void _verifySchemaType(FormatSchema schema)
protected DefaultDeserializationContext createDeserializationContext(JsonParser p)
DeserializationContext
for deserializing a single root value.
Can be overridden if a custom context is needed.protected InputStream _inputStream(URL src) throws IOException
IOExceptionprotected InputStream _inputStream(File f) throws IOException
IOExceptionprotected void _reportUndetectableSource(Object src) throws JsonParseException
JsonParseExceptionprotected JsonDeserializer<Object> _findRootDeserializer(DeserializationContext ctxt) throws JsonMappingException
JsonMappingExceptionprotected JsonDeserializer<Object> _findTreeDeserializer(DeserializationContext ctxt) throws JsonMappingException
JsonMappingExceptionprotected JsonDeserializer<Object> _prefetchRootDeserializer(JavaType valueType)
protected final JavaType _jsonNodeType()
Copyright © 2008–2020 FasterXML. All rights reserved.