org.codehaus.jackson.map.deser
Class JsonNodeDeserializer
java.lang.Object
org.codehaus.jackson.map.JsonDeserializer<T>
org.codehaus.jackson.map.deser.StdDeserializer<N>
org.codehaus.jackson.map.deser.JsonNodeDeserializer
public class JsonNodeDeserializer
- extends StdDeserializer<N>
Deserializer that can build instances of JsonNode
from any
Json content, using appropriate JsonNode
type.
Nested classes/interfaces inherited from class org.codehaus.jackson.map.deser.StdDeserializer |
StdDeserializer.BigDecimalDeserializer, StdDeserializer.BigIntegerDeserializer, StdDeserializer.BooleanDeserializer, StdDeserializer.ByteDeserializer, StdDeserializer.CalendarDeserializer, StdDeserializer.CharacterDeserializer, StdDeserializer.ClassDeserializer, StdDeserializer.DoubleDeserializer, StdDeserializer.FloatDeserializer, StdDeserializer.IntegerDeserializer, StdDeserializer.LongDeserializer, StdDeserializer.NumberDeserializer, StdDeserializer.PrimitiveOrWrapperDeserializer<T>, StdDeserializer.ShortDeserializer, StdDeserializer.SqlDateDeserializer, StdDeserializer.StackTraceElementDeserializer, StdDeserializer.StringDeserializer, StdDeserializer.TokenBufferDeserializer |
Method Summary |
protected void |
_handleDuplicateField(String fieldName,
ObjectNode objectNode,
JsonNode oldValue,
JsonNode newValue)
Method called when there is a duplicate value for a field. |
protected void |
_reportProblem(JsonParser jp,
String msg)
|
JsonNode |
deserialize(JsonParser jp,
DeserializationContext ctxt)
Implementation that will produce types of any JSON nodes; not just one
deserializer is registered to handle (in case of more specialized handler). |
protected JsonNode |
deserializeAny(JsonParser jp,
DeserializationContext ctxt)
|
protected ArrayNode |
deserializeArray(JsonParser jp,
DeserializationContext ctxt)
|
protected ObjectNode |
deserializeObject(JsonParser jp,
DeserializationContext ctxt)
|
Object |
deserializeWithType(JsonParser jp,
DeserializationContext ctxt,
TypeDeserializer typeDeserializer)
Base implementation that does not assume specific type
inclusion mechanism. |
static JsonDeserializer<? extends JsonNode> |
getDeserializer(Class<?> nodeClass)
|
JsonNodeFactory |
getNodeFactory()
|
void |
setNodeFactory(JsonNodeFactory nf)
|
Methods inherited from class org.codehaus.jackson.map.deser.StdDeserializer |
_parseBoolean, _parseDate, _parseDouble, _parseFloat, _parseInt, _parseLong, _parseShort, findDeserializer, getValueClass, getValueType, handleUnknownProperty, reportUnknownProperty |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
instance
@Deprecated
public static final JsonNodeDeserializer instance
- Deprecated. Use
getDeserializer(java.lang.Class>)
accessor instead- Singleton instance of generic deserializer for
JsonNode
_nodeFactory
protected JsonNodeFactory _nodeFactory
JsonNodeDeserializer
protected JsonNodeDeserializer()
getDeserializer
public static JsonDeserializer<? extends JsonNode> getDeserializer(Class<?> nodeClass)
deserialize
public JsonNode deserialize(JsonParser jp,
DeserializationContext ctxt)
throws IOException,
JsonProcessingException
- Implementation that will produce types of any JSON nodes; not just one
deserializer is registered to handle (in case of more specialized handler).
Overridden by typed sub-classes for more thorough checking
- Specified by:
deserialize
in class JsonDeserializer<JsonNode>
- Parameters:
jp
- Parsed used for reading Json contentctxt
- Context that can be used to access information about
this deserialization activity.
- Returns:
- Deserializer value
- Throws:
IOException
JsonProcessingException
getNodeFactory
public JsonNodeFactory getNodeFactory()
setNodeFactory
public void setNodeFactory(JsonNodeFactory nf)
deserializeWithType
public Object deserializeWithType(JsonParser jp,
DeserializationContext ctxt,
TypeDeserializer typeDeserializer)
throws IOException,
JsonProcessingException
- Description copied from class:
StdDeserializer
- Base implementation that does not assume specific type
inclusion mechanism. Sub-classes are expected to override
this method if they are to handle type information.
- Overrides:
deserializeWithType
in class StdDeserializer<N extends JsonNode>
typeDeserializer
- Deserializer to use for handling type information
- Throws:
IOException
JsonProcessingException
_reportProblem
protected void _reportProblem(JsonParser jp,
String msg)
throws JsonMappingException
- Throws:
JsonMappingException
_handleDuplicateField
protected void _handleDuplicateField(String fieldName,
ObjectNode objectNode,
JsonNode oldValue,
JsonNode newValue)
throws JsonProcessingException
- Method called when there is a duplicate value for a field.
By default we don't care, and the last value is used.
Can be overridden to provide alternate handling, such as throwing
an exception, or choosing different strategy for combining values
or choosing which one to keep.
- Parameters:
fieldName
- Name of the field for which duplicate value was foundobjectNode
- Object node that contains valuesoldValue
- Value that existed for the object node before newValue
was addednewValue
- Newly added value just added to the object node
- Throws:
JsonProcessingException
deserializeObject
protected final ObjectNode deserializeObject(JsonParser jp,
DeserializationContext ctxt)
throws IOException,
JsonProcessingException
- Throws:
IOException
JsonProcessingException
deserializeArray
protected final ArrayNode deserializeArray(JsonParser jp,
DeserializationContext ctxt)
throws IOException,
JsonProcessingException
- Throws:
IOException
JsonProcessingException
deserializeAny
protected final JsonNode deserializeAny(JsonParser jp,
DeserializationContext ctxt)
throws IOException,
JsonProcessingException
- Throws:
IOException
JsonProcessingException