SkillAgentSearch skills...

Jackson

Main Portal page for the Jackson project

Install / Use

/learn @FasterXML/Jackson
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<a href="CONTRIBUTING.md" alt="Hacktoberfest"><img src="https://badgen.net/badge/hacktoberfest/friendly/pink" /></a> Open Source

Jackson Project Home @github

This is the home page of the Jackson Project.

What is New?

See more releases information at Jackson Releases.

What is Jackson?

Jackson has been known as "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java".

More than that, Jackson is a suite of data-processing tools for Java (and the JVM platform), including the flagship streaming JSON parser / generator library, matching data-binding library (POJOs to and from JSON) and additional data format modules to process data encoded in Avro, BSON, CBOR, CSV, Smile, (Java) Properties, Protobuf, TOML, XML or YAML; and even the large set of data format modules to support data types of widely used data types such as Guava, Joda, PCollections and many, many more (see below).

While the actual core components live under their own projects -- including the three core packages (streaming, databind, annotations); data format libraries; data type libraries; JAX-RS provider; and a miscellaneous set of other extension modules -- this project act as the central hub for linking all the pieces together.

A good companion to this README is the Jackson Project FAQ.

Jackson Major Versions

Jackson suite has three major versions:

  • 1.x (org.codehaus.jackson) is deprecated and no versions are released;
  • 2.x (com.fasterxml.jackson) is the older actively developed and maintained version
  • 3.x (tools.jackson) is the newer actively developed and maintained version

These major versions use different Java packages and Maven artifact ids, so they are not mutually compatible, but can peacefully co-exist: a project can depend on both Jackson 1.x and 2.x (and eventually 3.x), without conflicts. This is by design and was chosen as the strategy to allow smoother migration from 1.x to 2.x (and from 2.x to 3.x, eventually).

The latest stable versions from these branches are:

  • 3.0.0, released on 03-Oct-2025
  • 2.20.0, released on 28-Aug-2025
    • 2.19.2 is the latest patch from previous stable branch
  • 1.9.13, released 14-Jul-2013

Recommended way to use Jackson is through Maven repositories; releases are made to Central Maven Repository (CMR). Individual projects' wiki pages sometimes also contain direct download links, pointing to CMR.

Release notes for 2.x and 3.x releases are found from Jackson Releases page.

Jackson 2.x to 3.0 migration

With Jackson 3.0.0 GA, some documentation exists to help migration:

Active Jackson projects

Most projects listed below are lead by Jackson development team; but some by other at-large Jackson community members.

We try to keep versioning of modules lined up to reduce confusion regarding which versions work together.

  • One exception to this is jackson-annotations which has a different versioning starting from 2.20 -- 2.20 instead of 2.20.0 (no patch digit)
  • For fully consistent set of versions, consider using Jackson BOM (jackson-bom)

Core modules

Core modules are the foundation on which extensions (modules) build upon. There are 3 such modules currently (as of Jackson 2.x):

  • Streaming (docs) ("jackson-core") defines low-level streaming API, and includes JSON-specific implementations
  • Annotations (docs) ("jackson-annotations") contains standard Jackson annotations
  • Databind (docs) ("jackson-databind") implements data-binding (and object serialization) support on streaming package; it depends both on streaming and annotations packages

In addition:

  • Jackson BOM (jackson-bom) is useful for ensuring fully consistent set of versions for all official Jackson components. It is usually used by importing as pom in "managed dependencies" Maven section (or using similar mechanism in Gradle etc).

Third-party datatype modules

These extensions are plug-in Jackson Modules (registered with ObjectMapper.registerModule()), and add support for datatypes of various commonly used Java libraries, by adding serializers and deserializers so that Jackson databind package (ObjectMapper / ObjectReader / ObjectWriter) can read and write these types.

Datatype modules directly maintained by Jackson team are under the following Github repositories:

View on GitHub
GitHub Stars9.7k
CategoryDevelopment
Updated11h ago
Forks1.2k

Security Score

85/100

Audited on Mar 29, 2026

No findings