Jackson Download Page
Artifact Types
Jackson versions 1.1 and above come in 4 separate jars:
Core jar contains streaming JSON parser and generator interfaces and implementations
Optional Mapper jar contains functionality for data binding:
TreeMapper to build "trees" consisting of JsonNodes, and write them as JSON
ObjectMapper to construct Plain Old Java Objects (POJOs, aka Beans) from JSON, and similarly write Java objects as JSON.
Optional jax-rs jar contains class(es) needed to make a JAX-RS implementation like Jersey use Jackson for simple, convenient and lightning fast binding of JSON to/from Java objects
- Jaxrs package depends on mapper jar (and transitively on core as well)
Jaxrs is only needed if you use Jackson via JAX-RS, and not for stand-alone usage
Optional xc (Xml Compatibility) jar (added for 1.1) contains classes needed to add XML compatibility support such as:
Ability to use JAXB annotations (instead of or in addition to basic Jackson annotations)
Note that for streaming parsing/writing of JSON, core package can be used without the other jars.
Versioning Strategy
Jackson versioning follows guidelines similars to ones Eclipse project uses, so that:
- Major version upgrade indicates incompatible changes.
- You MUST recompile (and re-test) your application or service when upgrading to a new major version
- Major version upgrades occur rarely
- Minor version upgrade indicates added functionality, but without removing existing functionality
- It is possible that observed behavior changes, but this should usually not cause compatibility problems
- Changes are binary compatible so it is possible -- although not recommended -- to just upgrade jar. Instead, you should recompile application, and re-test code that uses Jackson
- Patch version upgrades are strictly for bug fixes, and no new functionality is added
- Only changes to observed behavior is to fix broken behavior
- Upgrade by swapping jars should work without problems
Dependency handling
Jackson comes with Maven "pom"-files (and is available via Codehaus Maven2 repo, which gets synced with main Maven2 repository).
The only dependencies are:
- Core and mapper require JDK 5
- Mapper jar depends on core jar
- Jax-rs and Jax-xc jars depend on mapper jar
All jars are also first-class OSGi bundles with the usual import and export declarations.
Licensing
Jackson is dual-licensed under two alternative popular Open Source licenses: Apache (AL 2.0) and Gnu Lesser GPL (LGPL 2.1). You choose one or the other, as necessary (if you want to redistribute the code -- for use, you do not need license), and abide by the license rules as defined by the respective license agreement (and only that one).
All code contributions must be licensable under these two licenses.
Source
Is available from Codehaus Jackson SVN repository.
Repositories
Downloads
Latest stable version
Current stable branch is 1.4, and the latest version 1.4.3:
- Released: 18-Feb-2010
- Documentation:
- Deployable jars
ASL: core-asl, mapper-asl
LGPL: core-lgpl, mapper-lgpl
ASL/LGPL jax-rs
ASL/LGPL jax-xc
Latest stable versions of earlier branches
1.3 branch: 1.3.5
- Released: 18-Feb-2010
- Documentation:
- Deployable jars
ASL: core-asl, mapper-asl
LGPL: core-lgpl, mapper-lgpl
ASL/LGPL jax-rs
ASL/LGPL jax-xc
1.2 branch: 1.2.1
- Released: 03-Oct-2009
- Documentation:
- Deployable jars
ASL: core-asl, mapper-asl
LGPL: core-lgpl, mapper-lgpl
ASL/LGPL jax-rs
ASL/LGPL jax-xc
1.1 branch: 1.1.2
- Released: 31-Jul-2009
- Documentation:
- Deployable jars
ASL: core-asl, mapper-asl
LGPL: core-lgpl, mapper-lgpl
ASL/LGPL jax-rs
ASL/LGPL jax-xc
Earlier versions
Older versions can be found from Codehaus Maven2 repository.
The Old Jackson Download page also has links to some earlier releases.
