com.fasterxml.jackson.core

## Interface TreeNode

    public interface TreeNode

Marker interface used to denote JSON Tree nodes, as far as the core package knows them (which is very little): mostly needed to allow `ObjectCodec` to have some level of interoperability. All real functionality is within `JsonNode` base class in `mapper` package.

Note that in Jackson 1.x `JsonNode` itself was part of core package: Jackson 2.x refactored this since conceptually Tree Model is part of mapper package, and so part visible to `core` package should be minimized.

### Method Summary

Methods
`JsonToken` `asToken()` Method that can be used for efficient type detection when using stream abstraction for traversing nodes.
`JsonParser.NumberType` `numberType()` If this node is a numeric type (as per `JsonToken.isNumeric()`), returns native type that node uses to store the numeric value; otherwise returns null.
`JsonParser` `traverse()` Method for constructing a `JsonParser` instance for iterating over contents of the tree that this node is root of.

### Method Detail

#### asToken

    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)

#### numberType

    JsonParser.NumberType numberType()

If this node is a numeric type (as per `JsonToken.isNumeric()`), returns native type that node uses to store the numeric value; otherwise returns null.

Returns:
  Type of number contained, if any; or null if node does not contain numeric value.

#### traverse

    JsonParser traverse()

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.