com.fasterxml.jackson.databind.node
Class BaseJsonNode

java.lang.Object
  extended by com.fasterxml.jackson.databind.JsonNode
      extended by com.fasterxml.jackson.databind.node.BaseJsonNode
All Implemented Interfaces:
com.fasterxml.jackson.core.TreeNode, JsonSerializable, Iterable<JsonNode>
Direct Known Subclasses:
ContainerNode, MissingNode, ValueNode

public abstract class BaseJsonNode
extends JsonNode
implements JsonSerializable

Abstract base class common to all standard JsonNode implementations. The main addition here is that we declare that sub-classes must implement JsonSerializable. This simplifies object mapping aspects a bit, as no external serializers are needed.


Field Summary
 
Fields inherited from class com.fasterxml.jackson.databind.JsonNode
NO_NODES, NO_STRINGS
 
Constructor Summary
protected BaseJsonNode()
           
 
Method Summary
abstract  com.fasterxml.jackson.core.JsonToken asToken()
          Method that can be used for efficient type detection when using stream abstraction for traversing nodes.
 ObjectNode findParent(String fieldName)
          Method for finding a JSON Object that contains specified field, within this node or its descendants.
 List<JsonNode> findParents(String fieldName, List<JsonNode> foundSoFar)
           
 JsonNode findPath(String fieldName)
          Method similar to JsonNode.findValue(java.lang.String), but that will return a "missing node" instead of null if no field is found.
 JsonNode findValue(String fieldName)
          Method for finding a JSON Object field with specified name in this node or its child nodes, and returning value it has.
 List<JsonNode> findValues(String fieldName, List<JsonNode> foundSoFar)
           
 List<String> findValuesAsText(String fieldName, List<String> foundSoFar)
           
 com.fasterxml.jackson.core.JsonParser.NumberType numberType()
          Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.
abstract  void serialize(com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider provider)
          Method called to serialize node instances using given generator.
abstract  void serializeWithType(com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)
          Type information is needed, even if JsonNode instances are "plain" JSON, since they may be mixed with other types.
 com.fasterxml.jackson.core.JsonParser traverse()
          Method for constructing a JsonParser instance for iterating over contents of the tree that this node is root of.
 
Methods inherited from class com.fasterxml.jackson.databind.JsonNode
asBoolean, asBoolean, asDouble, asDouble, asInt, asInt, asLong, asLong, asText, bigIntegerValue, binaryValue, booleanValue, canConvertToInt, canConvertToLong, decimalValue, deepCopy, doubleValue, elements, equals, fieldNames, fields, findParents, findValues, findValuesAsText, get, get, has, has, intValue, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isMissingNode, isNull, isNumber, isObject, isPojo, isTextual, isValueNode, iterator, longValue, numberValue, path, path, size, textValue, toString, with, withArray
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BaseJsonNode

protected BaseJsonNode()
Method Detail

findValue

public JsonNode findValue(String fieldName)
Description copied from class: JsonNode
Method for finding a JSON Object field with specified name in this node or its child nodes, and returning value it has. If no matching field is found in this node or its descendants, returns null.

Specified by:
findValue in class JsonNode
Parameters:
fieldName - Name of field to look for
Returns:
Value of first matching node found, if any; null if none

findPath

public final JsonNode findPath(String fieldName)
Description copied from class: JsonNode
Method similar to JsonNode.findValue(java.lang.String), but that will return a "missing node" instead of null if no field is found. Missing node is a specific kind of node for which JsonNode.isMissingNode() returns true; and all value access methods return empty or missing value.

Specified by:
findPath in class JsonNode
Parameters:
fieldName - Name of field to look for
Returns:
Value of first matching node found; or if not found, a "missing node" (non-null instance that has no value)

findParent

public ObjectNode findParent(String fieldName)
Description copied from class: JsonNode
Method for finding a JSON Object that contains specified field, within this node or its descendants. If no matching field is found in this node or its descendants, returns null.

Specified by:
findParent in class JsonNode
Parameters:
fieldName - Name of field to look for
Returns:
Value of first matching node found, if any; null if none

findValues

public List<JsonNode> findValues(String fieldName,
                                 List<JsonNode> foundSoFar)
Specified by:
findValues in class JsonNode

findValuesAsText

public List<String> findValuesAsText(String fieldName,
                                     List<String> foundSoFar)
Specified by:
findValuesAsText in class JsonNode

findParents

public List<JsonNode> findParents(String fieldName,
                                  List<JsonNode> foundSoFar)
Specified by:
findParents in class JsonNode

traverse

public com.fasterxml.jackson.core.JsonParser traverse()
Description copied from class: JsonNode
Method for constructing a JsonParser instance for iterating over contents of the tree that this node is root of. Functionally equivalent to first serializing tree using ObjectCodec and then re-parsing but more efficient.

Specified by:
traverse in interface com.fasterxml.jackson.core.TreeNode
Specified by:
traverse in class JsonNode

asToken

public abstract com.fasterxml.jackson.core.JsonToken asToken()
Method that can be used for efficient type detection when using stream abstraction for traversing nodes. Will return the first JsonToken that equivalent stream event would produce (for most nodes there is just one token but for structured/container types multiple)

Specified by:
asToken in interface com.fasterxml.jackson.core.TreeNode
Specified by:
asToken in class JsonNode

numberType

public com.fasterxml.jackson.core.JsonParser.NumberType numberType()
Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.

Specified by:
numberType in interface com.fasterxml.jackson.core.TreeNode
Specified by:
numberType in class JsonNode
Returns:
Type of number contained, if any; or null if node does not contain numeric value.

serialize

public abstract void serialize(com.fasterxml.jackson.core.JsonGenerator jgen,
                               SerializerProvider provider)
                        throws IOException,
                               com.fasterxml.jackson.core.JsonProcessingException
Method called to serialize node instances using given generator.

Specified by:
serialize in interface JsonSerializable
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException

serializeWithType

public abstract void serializeWithType(com.fasterxml.jackson.core.JsonGenerator jgen,
                                       SerializerProvider provider,
                                       TypeSerializer typeSer)
                                throws IOException,
                                       com.fasterxml.jackson.core.JsonProcessingException
Type information is needed, even if JsonNode instances are "plain" JSON, since they may be mixed with other types.

Specified by:
serializeWithType in interface JsonSerializable
Throws:
IOException
com.fasterxml.jackson.core.JsonProcessingException


Copyright © 2012 fasterxml.com. All Rights Reserved.