Skip to content

atov/jackson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Jackson Project Home @github

This will the portal page for Jackson Project, at github. It shall contain links to all active Jackson projects owned by Jackson project team; as well as additional links to external resources.

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 compatible to reduce confusion regarding which versions work together.

Core modules

Core modules are the foundation on which extensions (modules) build upon. These are three and they are known as:

  • 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

Data format modules

Data format modules offer support for data formats other than JSON. Most of them simply implement streaming API abstractions, so that databinding component can be used as is; some offer (and few require) additional databind level functionality for handling things like schemas.

Currently usable data format modules by Jackson team are:

  • CSV: supports Comma-separated values format -- streaming api, with optional convenience databind additions
  • XML: supports XML; provides both streaming and databind implementations. Similar to JAXB' "code-first" mode (no support for "XML Schema first", but can use JAXB beans)
  • YAML: supports YAML, which being similar to JSON is fully supported with simple streaming implementation
  • Smile: supports Smile (binary JSON) -- 100% API/logical model compatible via streaming API, no changes for databind
  • Avro: supports Avro data format, with streaming implementation plus additional databind-level support for Avro Schemas

In addition, there are other experimental and external data format implementations available:

  • bson4jackson: adds support for BSON data format (by Mongo project). Basic streaming implementation (no databind changes) -- external project

JVM Language modules

  • Scala to handle native Scala types (including but not limited to Scala collection/map types, case classes)

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.

  • Guava: support for many of Guava datatypes.
  • Hibernate: support for Hibernate features (lazy-loading, proxies)
  • HPPC: support for High-Performance Primitive Containers containers
  • Joda: support for types of Joda date/time library datatypes
  • org.json: support for "org.json JSON lib" types like JSONObject, JSONArray
  • JSR-310: support for "Java 8 Dates" -- experimental, until Java 8 is finalized
  • JSR-353: support for "Java JSON API" types (specifically, its tree model objects)

Providers for JAX-RS

Jackson JAX-RS Providers has handlers to add dataformat support for JAX-RS implementations (like Jersey, RESTeasy, CXF). Providers implement MessageBodyReader and MessageBodyWriter.

Other

  • Afterburner: speed up databinding by 30-40% with bytecode generation to replace use of Reflection
  • JAXB Annotations: allow use of JAXB annotations as an alternative (in addition to or instead of) standard Jackson annotations
  • Mr Bean: "type materialization" -- let Mr Bean generate implementation classes on-the-fly (NO source code generation), to avoid monkey code
  • Paranamer: tiny extension for automatically figuring out creator (constructor, factory method) parameter names, to avoid having to specify @JsonProperty.
  • JSON Schema generator: Generate JSON Schema, based on Jackson POJO introspection, including annotations

Documentation

Web sites

  • jackson-docs is our Github Jackson documentation hub
  • Jackson Wiki contains older documentation (some 1.x specific; but mostly relevant for both 1.x and 2.x)
  • CowTalk -- Blog with lots of Jackson-specific content
  • Jackson Users is a Jackson-specific discussion forum

Older resources

These are obsolete resources, mostly useful for historical interest:

About

Main Portal page for Jackson project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published