|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.jackson.JsonNode
public abstract class JsonNode
Base class for all JSON nodes, which form the basis of JSON Tree Model that Jackson implements. One way to think of these nodes is to considere them similar to DOM nodes in XML DOM trees.
As a general design rule, most accessors ("getters") are included in this base class, to allow for traversing structure without type casts. Most mutators, however, need to be accessed through specific sub-classes. This seems sensible because proper type information is generally available when building or modifying trees, but less often when reading a tree (newly built from parsed Json content).
Actual concrete sub-classes can be found from package
org.codehaus.jackson.node
.
Constructor Summary | |
---|---|
protected |
JsonNode()
|
Method Summary | |
---|---|
abstract JsonToken |
asToken()
Method that can be used for efficient type detection when using stream abstraction for traversing nodes. |
abstract boolean |
equals(Object o)
Note: marked as abstract to ensure all implementation classes define it properly. |
JsonNode |
get(int index)
Method for accessing value of the specified element of an array node. |
JsonNode |
get(String fieldName)
Method for accessing value of the specified field of an object node. |
BigInteger |
getBigIntegerValue()
|
byte[] |
getBinaryValue()
Method to use for accessing binary content of binary nodes (nodes for which isBinary() returns true); or for Text Nodes
(ones for which getTextValue() returns non-null value),
to read decoded base64 data. |
boolean |
getBooleanValue()
|
BigDecimal |
getDecimalValue()
|
double |
getDoubleValue()
|
Iterator<JsonNode> |
getElements()
Method for accessing all value nodes of this Node, iff this node is a Json Array or Object node. |
JsonNode |
getElementValue(int index)
Deprecated. Use get(int) instead. |
Iterator<String> |
getFieldNames()
Method for accessing names of all fields for this Node, iff this node is a Json Object node. |
JsonNode |
getFieldValue(String fieldName)
Deprecated. Use get(String) instead. |
int |
getIntValue()
|
long |
getLongValue()
|
abstract JsonParser.NumberType |
getNumberType()
If this node is a numeric type (as per isNumber() ),
returns native type that node uses to store the numeric
value. |
Number |
getNumberValue()
Returns numeric value for this node, if and only if this node is numeric ( isNumber() returns true); otherwise
returns null |
JsonNode |
getPath(int index)
Deprecated. Use path(int) instead |
JsonNode |
getPath(String fieldName)
Deprecated. Use path(String) instead |
String |
getTextValue()
Method to use for accessing String values. |
abstract String |
getValueAsText()
Method that will return valid String representation of the container value, if the node is a value node (method isValueNode() returns true), otherwise null. |
boolean |
isArray()
|
boolean |
isBigDecimal()
|
boolean |
isBigInteger()
|
boolean |
isBinary()
Method that can be used to check if this node represents binary data (Base64 encoded). |
boolean |
isBoolean()
Method that can be used to check if this node was created from Json boolean value (literals "true" and "false"). |
boolean |
isContainerNode()
Method that returns true for container nodes: Arrays and Objects. |
boolean |
isDouble()
|
boolean |
isFloatingPointNumber()
|
boolean |
isInt()
|
boolean |
isIntegralNumber()
|
boolean |
isLong()
|
boolean |
isMissingNode()
Method that returns true for "virtual" nodes which represent missing entries constructed by path accessor methods when there is no actual node matching given criteria. |
boolean |
isNull()
Method that can be used to check if this node was created from Json liternal null value. |
boolean |
isNumber()
|
boolean |
isObject()
|
boolean |
isPojo()
Method that can be used to check if the node is a wrapper for a POJO ("Plain Old Java Object" aka "bean". |
boolean |
isTextual()
|
boolean |
isValueNode()
Method that returns true for all value nodes: ones that are not containers, and that do not represent "missing" nodes in the path. |
Iterator<JsonNode> |
iterator()
Same as calling getElements() ; implemented so that
convenience "for-each" loop can be used for looping over elements
of Json Array constructs. |
abstract JsonNode |
path(int index)
This method is similar to get(int) , except
that instead of returning null if no such element exists (due
to index being out of range, or this node not being an array),
a "missing node" (node that returns true for
isMissingNode() ) will be returned. |
abstract JsonNode |
path(String fieldName)
This method is similar to get(String) , except
that instead of returning null if no such value exists (due
to this node not being an object, or object not having value
for the specified field),
a "missing node" (node that returns true for
isMissingNode() ) will be returned. |
int |
size()
Method that returns number of child nodes this node contains: for Array nodes, number of child elements, for Object nodes, number of fields, and for all other nodes 0. |
abstract String |
toString()
Note: marked as abstract to ensure all implementation classes define it properly. |
abstract JsonParser |
traverse()
Method for constructing a JsonParser instance for
iterating over contents of the tree that this
node is root of. |
abstract void |
writeTo(JsonGenerator jg)
Deprecated. Use methods that are part of JsonGenerator
or ObjectMapper
instead. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
protected JsonNode()
Method Detail |
---|
public boolean isValueNode()
Note: one and only one of methods isValueNode()
,
isContainerNode()
and isMissingNode()
ever
returns true for any given node.
public boolean isContainerNode()
Note: one and only one of methods isValueNode()
,
isContainerNode()
and isMissingNode()
ever
returns true for any given node.
public boolean isMissingNode()
Note: one and only one of methods isValueNode()
,
isContainerNode()
and isMissingNode()
ever
returns true for any given node.
public boolean isArray()
public boolean isObject()
public boolean isPojo()
POJONode
.
public boolean isNumber()
public boolean isIntegralNumber()
public boolean isFloatingPointNumber()
public boolean isInt()
public boolean isLong()
isInt()
returns false)public boolean isDouble()
public boolean isBigDecimal()
public boolean isBigInteger()
public boolean isTextual()
public boolean isBoolean()
public boolean isNull()
public boolean isBinary()
isTextual()
will
return false if this method returns true.
public abstract JsonToken asToken()
JsonToken
that equivalent
stream event would produce (for most nodes there is just
one token but for structured/container types multiple)
public abstract JsonParser.NumberType getNumberType()
isNumber()
),
returns native type that node uses to store the numeric
value.
public String getTextValue()
isTextual()
returns
false) null will be returned.
For String values, null is never returned (but empty Strings may be)
public byte[] getBinaryValue() throws IOException
isBinary()
returns true); or for Text Nodes
(ones for which getTextValue()
returns non-null value),
to read decoded base64 data.
For other types of nodes, returns null.
IOException
public boolean getBooleanValue()
public Number getNumberValue()
isNumber()
returns true); otherwise
returns null
public int getIntValue()
public long getLongValue()
public double getDoubleValue()
public BigDecimal getDecimalValue()
public BigInteger getBigIntegerValue()
public JsonNode get(int index)
For array nodes, index specifies
exact location within array and allows for efficient iteration
over child elements (underlying storage is guaranteed to
be efficiently indexable, i.e. has random-access to elements).
If index is less than 0, or equal-or-greater than
node.size()
, null is returned; no exception is
thrown for any index.
public JsonNode get(String fieldName)
@Deprecated public final JsonNode getFieldValue(String fieldName)
get(String)
instead.
get(String)
.
@Deprecated public final JsonNode getElementValue(int index)
get(int)
instead.
get(int)
.
public abstract String getValueAsText()
isValueNode()
returns true), otherwise null.
Note: to serialize nodes of any type, you should call
toString()
instead.
public int size()
public final Iterator<JsonNode> iterator()
getElements()
; implemented so that
convenience "for-each" loop can be used for looping over elements
of Json Array constructs.
iterator
in interface Iterable<JsonNode>
public Iterator<JsonNode> getElements()
public Iterator<String> getFieldNames()
public abstract JsonNode path(String fieldName)
get(String)
, except
that instead of returning null if no such value exists (due
to this node not being an object, or object not having value
for the specified field),
a "missing node" (node that returns true for
isMissingNode()
) will be returned. This allows for
convenient and safe chained access via path calls.
@Deprecated public final JsonNode getPath(String fieldName)
path(String)
instead
path(String)
.
public abstract JsonNode path(int index)
get(int)
, except
that instead of returning null if no such element exists (due
to index being out of range, or this node not being an array),
a "missing node" (node that returns true for
isMissingNode()
) will be returned. This allows for
convenient and safe chained access via path calls.
@Deprecated public final JsonNode getPath(int index)
path(int)
instead
path(int)
.
public abstract void writeTo(JsonGenerator jg) throws IOException, JsonGenerationException
JsonGenerator
or ObjectMapper
instead.
IOException
JsonGenerationException
public abstract JsonParser traverse()
JsonParser
instance for
iterating over contents of the tree that this
node is root of.
Functionally equivalent to first serializing tree
using writeTo(org.codehaus.jackson.JsonGenerator)
and then re-parsing but much
more efficient.
public abstract String toString()
Note: marked as abstract to ensure all implementation classes define it properly.
toString
in class Object
public abstract boolean equals(Object o)
Note: marked as abstract to ensure all implementation classes define it properly.
equals
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |