# Package com.fasterxml.jackson.core

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.
  JsonTokenId | Interface defined to contain ids accessible with `JsonToken.id()`.
  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.
  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.
  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: `Base64Variants.MIME` `Base64Variants.MIME_NO_LINEFEEDS` `Base64Variants.PEM` `Base64Variants.MODIFIED_FOR_URL`
  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.
  JsonParser | Base class that defines public API for reading JSON content.
  JsonPointer | Implementation of JSON Pointer specification.
  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).
  TreeCodec | Interface that defines objects that can read and write `TreeNode` instances using Streaming API.
  Version | Object that encapsulates versioning information of a component.

- 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.
  JsonFactory.Feature | Enumeration that defines all on/off features that can only be changed for `JsonFactory`.
  JsonGenerator.Feature | Enumeration that defines all togglable features for generators.
  JsonParser.Feature | Enumeration that defines all on/off 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 com.fasterxml.jackson.core 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 the "jackson-databind" bundle, except for following base interfaces that are defined here:

- `TreeNode` 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, `com.fasterxml.jackson.databind.ObjectMapper`) can be exposed, without adding direct dependency to implementation.

Copyright © 2012-2013 FasterXML. All Rights Reserved.