Jackson
Main Portal page for the Jackson project
Install / Use
/learn @FasterXML/JacksonREADME
<a href="CONTRIBUTING.md" alt="Hacktoberfest"><img src="https://badgen.net/badge/hacktoberfest/friendly/pink" /></a>
Jackson Project Home @github
This is the home page of the Jackson Project.
What is New?
- Oct 3, 2025: Jackson 3.0.0 GA Released!!!
- Sep 30, 2025: Skeletal version of Jackson 3 Migration Guide
- Sep 5, 2025: Added note of
jackson-annotationsversioning scheme change in 2.20 - Aug 28, 2025: Jackson 2.20 released
- Apr 24, 2025: Jackson 2.19 released
- Apr 8, 2025: Minor updates wrt Jackson 3.x
- Sep 26, 2024: Jackson 2.18 released
- Mar 12, 2024: Jackson 2.17 released
- Feb 19, 2024: Another OSTIF/AdaLogics Security Audit -- on jackson-dataformat-xxx's and jackson-datatype-xxx's -- released: https://ostif.org/dataformatsdatatypes-audit-complete/
- Dec 17, 2023: contributing/Jackson Coding Style Guide
- Nov 15, 2023: Jackson 2.16 released
- Apr 23, 2023: Jackson 2.15 released
- Nov 5, 2022: Jackson 2.14 released
- Nov 2, 2022: AdaLogics Security Audit for Jackson released -- see Document/Reports
- Sep 30, 2021: Jackson 2.13 released
- Oct 1, 2020: Jackson participates in Hacktoberfest2020 and we have a Jackson/Hacktoberfest repo too!
- Oct 9, 2020: Added Contributing
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.20instead of2.20.0(no patch digit)- See more details.
- 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
streamingpackage; it depends both onstreamingandannotationspackages
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:
- Standard Collections datatype modules:
- jackson-datatype-eclipse-collections: support for Eclipse Collections (added in 2.10)
- jackson-datatype-guava: support for many of Guava datatypes
- jackson-datatype-hppc: support for High-Performance Primitive Containers containers
- jackson-datatype-pcollections: support for PCollections datatypes (since Jackson 2.7)
- Hibernate: support for Hibernate features (lazy-loading, proxies)
- Java 8 Modules: support or JDK 8 features and datatypes through 3 separate modules
jackson-module-parameter-names: Module that adds support for using a new JDK8 feature, ability to access names of constructor and method parameters, to allow omitting@JsonProperty.jackson-datatype-jsr310: support for "Java 8 Dates" (ones added in JDK 8)- Also, for pre-Java8 users can use one of alternate pre-Java8 backports:
jackson-datatype-jdk8: support for JDK 8 data types other than date/time types, includingOptional
- Joda datatypes:
- jackson-datatype-joda: support for types of Joda-Time date/time library datatypes
- jackson-datatype-joda-money: support types of Joda-Money datatypes (
Money,CurrencyUnit)
- JSON-P ("json processing"): two datatype modules for "old" (
javax.json) and
Security Score
Audited on Mar 29, 2026
