## Uses of Interface
com.fasterxml.jackson.databind.JsonSerializable

Packages that use JsonSerializable
com.fasterxml.jackson.databind: Basic data binding (mapping) functionality that allows for reading JSON content into Java Objects (POJOs) and JSON Trees (`JsonNode`), as well as writing Java Objects and trees as JSON.
com.fasterxml.jackson.databind.node: Contains concrete `JsonNode` implementations Jackson uses for the Tree model.
com.fasterxml.jackson.databind.ser.std
com.fasterxml.jackson.databind.type: Package that contains concrete implementations of `JavaType`, as well as the factory (`TypeFactory`) for constructing instances from various input data types (like `Class`, `Type`) and programmatically (for structured types, arrays, `List`s and `Map`s).
com.fasterxml.jackson.databind.util: Utility classes for Mapper package.

### Uses of JsonSerializable in com.fasterxml.jackson.databind

Classes in com.fasterxml.jackson.databind that implement JsonSerializable
`class` `JsonNode` Base class for all JSON nodes, which form the basis of JSON Tree Model that Jackson implements.
`static class` `JsonSerializable.Base` Base class with minimal implementation, as well as couple of extension methods that core Jackson databinding makes use of.

### Uses of JsonSerializable in com.fasterxml.jackson.databind.node

Classes in com.fasterxml.jackson.databind.node that implement JsonSerializable
`class` `ArrayNode` Node class that represents Arrays mapped from JSON content.
`class` `BaseJsonNode` Abstract base class common to all standard `JsonNode` implementations.
`class` `BigIntegerNode` Numeric node that contains simple 64-bit integer values.
`class` `BinaryNode` Value node that contains Base64 encoded binary value, which will be output and stored as Json String value.
`class` `BooleanNode` This concrete value class is used to contain boolean (true / false) values.
`class` `ContainerNode<T extends ContainerNode<T>>` This intermediate base class is used for all container nodes, specifically, array and object nodes.
`class` `DecimalNode` Numeric node that contains values that do not fit in simple integer (int, long) or floating point (double) values.
`class` `DoubleNode` Numeric node that contains 64-bit ("double precision") floating point values simple 32-bit integer values.
`class` `FloatNode` `JsonNode` implementation for efficiently containing 32-bit `float` values.
`class` `IntNode` Numeric node that contains simple 32-bit integer values.
`class` `LongNode` Numeric node that contains simple 64-bit integer values.
`class` `MissingNode` This singleton node class is generated to denote "missing nodes" along paths that do not exist.
`class` `NullNode` This singleton value class is used to contain explicit JSON null value.
`class` `NumericNode` Intermediate value node used for numeric nodes.
`class` `ObjectNode` Node that maps to JSON Object structures in JSON content.
`class` `POJONode` Value node that contains a wrapped POJO, to be serialized as a JSON constructed through data mapping (usually done by calling `ObjectMapper`).
`class` `ShortNode` Numeric node that contains simple 16-bit integer values.
`class` `TextNode` Value node that contains a text value.
`class` `ValueNode` This intermediate base class is used for all leaf nodes, that is, all non-container (array or object) nodes, except for the "missing node".

### Uses of JsonSerializable in com.fasterxml.jackson.databind.ser.std

Methods in com.fasterxml.jackson.databind.ser.std with parameters of type JsonSerializable
`boolean` SerializableSerializer.`isEmpty(SerializerProvider serializers, JsonSerializable value)`
`void` SerializableSerializer.`serialize(JsonSerializable value, JsonGenerator gen, SerializerProvider serializers)`
`void` SerializableSerializer.`serializeWithType(JsonSerializable value, JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer)`

### Uses of JsonSerializable in com.fasterxml.jackson.databind.type

Classes in com.fasterxml.jackson.databind.type that implement JsonSerializable
`class` `ArrayType` Array types represent Java arrays, both primitive and object valued.
`class` `CollectionLikeType` Type that represents things that act similar to `Collection`; but may or may not be instances of that interface.
`class` `CollectionType` Type that represents Java Collection types (Lists, Sets).
`class` `MapLikeType` Type that represents Map-like types; things that consist of key/value pairs but that do not necessarily implement `Map`, but that do not have enough introspection functionality to allow for some level of generic handling.
`class` `MapType` Type that represents "true" Java Map types.
`class` `PlaceholderForType` Helper type used when introspecting bindings for already resolved types, needed for specialization.
`class` `ReferenceType` Specialized `SimpleType` for types that are referential types, that is, values that can be dereferenced to another value (or null), of different type.
`class` `ResolvedRecursiveType` Internal placeholder type used for self-references.
`class` `SimpleType` Simple types are defined as anything other than one of recognized container types (arrays, Collections, Maps).
`class` `TypeBase`

### Uses of JsonSerializable in com.fasterxml.jackson.databind.util

Classes in com.fasterxml.jackson.databind.util that implement JsonSerializable
`class` `JSONPObject` Container class that can be used to wrap any Object instances (including nulls), and will serialize embedded in JSONP wrapping.
`class` `JSONWrappedObject` General-purpose wrapper class that can be used to decorate serialized value with arbitrary literal prefix and suffix.
`class` `RawValue` Helper class used to encapsulate "raw values", pre-encoded textual content that can be output as opaque value with no quoting/escaping, using `JsonGenerator.writeRawValue(String)`.

Constructors in com.fasterxml.jackson.databind.util with parameters of type JsonSerializable
Constructor and Description
`RawValue(JsonSerializable v)`