Package com.fasterxml.jackson.databind

Basic data binding (mapping) functionality that allows for reading JSON content into Java Objects (POJOs) and JSON Trees (JsonNode), as well as writing Java Objects and trees as JSON. Reading and writing (as well as related additional functionality) is accessed through ObjectMapper, ObjectReader and ObjectWriter classes. In addition to reading and writing JSON content, it is also possible to use the general databinding functionality for many other data formats, using Jackson extension modules that provide such support: if so, you typically simply construct an ObjectMapper with different underlying streaming parser, generator implementation.

The main starting point for operations is ObjectMapper, which can be used either directly (via multiple overloaded readValue, readTree, writeValue and writeTree methods, or it can be used as a configurable factory for constructing fully immutable, thread-safe and reusable ObjectReader and ObjectWriter objects.

In addition to simple reading and writing of JSON as POJOs or JSON trees (represented as JsonNode, and configurability needed to change aspects of reading/writing, mapper contains additional functionality such as:

Simplest usage is of form:

  final ObjectMapper mapper = new ObjectMapper(); // can use static singleton, inject: just make sure to reuse!
  MyValue value = new MyValue();
  // ... and configure
  File newState = new File("my-stuff.json");
  mapper.writeValue(newState, value); // writes JSON serialization of MyValue instance
  // or, read
  MyValue older = mapper.readValue(new File("my-older-stuff.json"), MyValue.class);

  // Or if you prefer JSON Tree representation:
  JsonNode root = mapper.readTree(newState);
  // and find values by, for example, using a JsonPointer expression:
  int age ="/personal/age").getValueAsInt(); 

For more usage, refer to ObjectMapper, ObjectReader and ObjectWriter Javadocs.