Jackson - Overview


Jackson is a simple Java-based library to serialize Java objects to JSON and vice versa.

Features of Jackson

  • Easy to use − Jackson API provides a high-level facade to simplify commonly used use-cases.

  • No need to create mapping − Jackson API provides default mapping for most of the objects to be serialized.

  • Performance − Jackson is quite fast, consumes less memory space, and is suitable for large object graphs or systems.

  • Clean JSON − Jackson creates clean and compact JSON results which are easy to read.

  • No Dependency − Jackson library does not require any other library apart from JDK.

  • Open Source − Jackson library is open source and free to use.

Process JSON using Jackson

Jackson provides three different ways to process JSON −

  • Streaming API − It reads and writes JSON content as discrete events. JsonParser reads the data, whereas JsonGenerator writes the data.

    • It is the most powerful approach among the three.

    • It has the lowest overhead and it provides the fastest way to perform read/write operations.

    • It is analogous to Stax parser for XML.

  • Tree Model − It prepares an in-memory tree representation of the JSON document. ObjectMapper build tree of JsonNode nodes. It is most flexible approach. It is analogous to DOM parser for XML.

  • Data Binding − It converts JSON to and from Plain Old Java Object (POJO) using property accessor or using annotations. ObjectMapper reads/writes JSON for both types of data bindings. Data binding is analogous to JAXB parser for XML. Data binding is of two types −

    • Simple Data Binding − It converts JSON to and from Java Maps, Lists, Strings, Numbers, Booleans, and null objects.

    • Full Data Binding − It converts JSON to and from any Java type.