Jackson Data Binding Source Code

Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java".

  • Jackson Data Binding module allows you to converts JSON to and from POJO (Plain Old Java Object) using property accessor or using annotations.
  • Jackson Databind Source Code files are provided in the source packge (jackson-databind-2.12.4-sources.jar). You can download it at Jackson Maven Website.

    You can also browse Jackson Databind Source Code below:

    ✍: FYIcenter.com


    Basic data binding (mapping) functionality that
    allows for reading JSON content into Java Objects (POJOs)
    and JSON Trees ({@link com.fasterxml.jackson.databind.JsonNode}), as well as
    writing Java Objects and trees as JSON.
    Reading and writing (as well as related additional functionality) is accessed through
    {@link com.fasterxml.jackson.databind.ObjectMapper},
    {@link com.fasterxml.jackson.databind.ObjectReader} and
    {@link com.fasterxml.jackson.databind.ObjectWriter}
     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 {@link com.fasterxml.jackson.databind.ObjectMapper} with
     different underlying streaming parser, generator implementation.
    The main starting point for operations is {@link com.fasterxml.jackson.databind.ObjectMapper},
    which can be used either directly (via multiple overloaded
    <code>writeValue</code> and
    <code>writeTree</code> methods, or it can be used as a configurable factory for constructing
    fully immutable, thread-safe and reusable {@link com.fasterxml.jackson.databind.ObjectReader}
    and {@link com.fasterxml.jackson.databind.ObjectWriter} objects.
    In addition to simple reading and writing of JSON as POJOs or JSON trees (represented as
    {@link com.fasterxml.jackson.databind.JsonNode}, and configurability needed to change aspects
    of reading/writing, mapper contains additional functionality such as:
     <li>Value conversions using {@link com.fasterxml.jackson.databind.ObjectMapper#convertValue(Object, Class)},
      {@link com.fasterxml.jackson.databind.ObjectMapper#valueToTree(Object)} and
      {@link com.fasterxml.jackson.databind.ObjectMapper#treeToValue(com.fasterxml.jackson.core.TreeNode, Class)} methods.
     <li>Type introspection needed for things like generation of Schemas (like JSON Schema, Avro Schema, or protoc
       definitions), using {@link com.fasterxml.jackson.databind.ObjectMapper#acceptJsonFormatVisitor(Class, com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper)}
       (note: actual handles are usually provided by various Jackson modules: mapper simply initiates calling of
       callbacks, based on serializers registered)
    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 {@link com.fasterxml.jackson.core.JsonPointer} expression:
      int age = root.at("/personal/age").getValueAsInt(); 
    For more usage, refer to
    {@link com.fasterxml.jackson.databind.ObjectMapper},
    {@link com.fasterxml.jackson.databind.ObjectReader} and
    {@link com.fasterxml.jackson.databind.ObjectWriter}
    package com.fasterxml.jackson.databind;



    ⇒ Jackson Annotations Source Code

    ⇐ Download and Install Jackson Binary Package

    ⇑ Downloading and Reviewing jackson-*.jar

    ⇑⇑ Jackson - Java JSON library

    2022-03-29, 31976👍, 0💬