# Package org.codehaus.jackson

Main public API classes of the core streaming JSON processor: most importantly `JsonFactory` used for constructing JSON parser (`JsonParser`) and generator (`JsonParser`) instances.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  FormatSchema | Simple tag interface used to mark schema objects that are used by some `JsonParser` and `JsonGenerator` implementations to further specify structure of expected format.
  PrettyPrinter | Interface for objects that implement pretty printer functionality, such as indentation.
  SerializableString | Interface that defines how Jackson package can interact with efficient pre-serialized or lazily-serialized and reused String representations.
  Versioned | Interface that those Jackson components that are explicitly versioned will implement.

- Class Summary
  Class | Description
  --- | ---
  Base64Variant | Abstract base class used to define specific details of which variant of Base64 encoding/decoding is to be used.
  Base64Variants | Container for commonly used Base64 variants.
  JsonFactory | The main factory class of Jackson package, used to configure and construct reader (aka parser, `JsonParser`) and writer (aka generator, `JsonGenerator`) instances.
  JsonGenerator | Base class that defines public API for writing JSON content.
  JsonLocation | Object that encapsulates Location information used for reporting parsing (or potentially generation) errors, as well as current location within input streams.
  JsonNode | Base class for all JSON nodes, which form the basis of JSON Tree Model that Jackson implements.
  JsonParser | Base class that defines public API for reading JSON content.
  JsonStreamContext | Shared base class for streaming processing contexts used during reading and writing of Json content using Streaming API.
  ObjectCodec | Abstract class that defines the interface that `JsonParser` and `JsonGenerator` use to serialize and deserialize regular Java objects (POJOs aka Beans).
  Version | Object that encapsulates version information of a component, and is return by `Versioned.version()`.

- Enum Summary
  Enum | Description
  --- | ---
  JsonEncoding | Enumeration that defines legal encodings that can be used for JSON content, based on list of allowed encodings from JSON specification.
  JsonGenerator.Feature | Enumeration that defines all togglable features for generators.
  JsonParser.Feature | Enumeration that defines all togglable features for parsers.
  JsonParser.NumberType | Enumeration of possible "native" (optimal) types that can be used for numbers.
  JsonToken | Enumeration for basic token types used for returning results of parsing JSON content.

- Exception Summary
  Exception | Description
  --- | ---
  JsonGenerationException | Exception type for exceptions during JSON writing, such as trying to output content in wrong context (non-matching end-array or end-object, for example).
  JsonParseException | Exception type for parsing problems, used when non-well-formed content (content that does not conform to JSON syntax as per specification) is encountered.
  JsonProcessingException | Intermediate base class for all problems encountered when processing (parsing, generating) JSON content that are not pure I/O problems.

## Package org.codehaus.jackson Description

Main public API classes of the core streaming JSON processor: most importantly `JsonFactory` used for constructing JSON parser (`JsonParser`) and generator (`JsonParser`) instances.

Public API of the higher-level mapping interfaces ("Mapping API") is found from under `org.codehaus.jackson.map` and not included here, except for following base interfaces:

- `JsonNode` is included within Streaming API to support integration of the Tree Model (which is based on `JsonNode`) with the basic parsers and generators (iff using mapping-supporting factory: which is part of Mapping API, not core)
- `ObjectCodec` is included so that reference to the object capable of serializing/deserializing Objects to/from JSON (usually, `ObjectMapper`) can be exposed, without adding direct dependency to implementation.