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

    com/fasterxml/jackson/databind/deser/ResolvableDeserializer.java

    package com.fasterxml.jackson.databind.deser;
    
    import com.fasterxml.jackson.databind.DeserializationContext;
    import com.fasterxml.jackson.databind.JsonMappingException;
    
    /**
     * Interface used to indicate deserializers that want to do post-processing
     * after construction but before being returned to caller (and possibly cached)
     * and used.
     * This is typically used to resolve references
     * to other contained types; for example, bean deserializers use this callback
     * to locate deserializers for contained field types.
     * Main reason for using a callback (instead of trying to resolve dependencies
     * immediately) is to make it possible to cleanly handle self-references;
     * otherwise it would be easy to get into infinite recursion.
     *<p>
     * Note that {@link #resolve} method does NOT allow returning anything 
     * (specifically, a new deserializer instance): reason for this is that
     * allowing this would not work with proper handling of cyclic dependencies,
     * which are resolved by two-phase processing, where initially constructed
     * deserializer is added as known deserializer, and only after this
     * resolution is done. Resolution is the part that results in lookups for
     * dependant deserializers, which may include handling references to
     * deserializer itself.
     *<p>
     * Note that in cases where deserializer needs both contextualization and
     * resolution -- that is, implements both this interface and {@link ContextualDeserializer}
     * -- resolution via this interface occurs first, and contextual
     * resolution (using {@link ContextualDeserializer}) later on.
     */
    public interface ResolvableDeserializer
    {
        /**
         * Method called after deserializer instance has been constructed
         * (and registered as necessary by provider objects),
         * but before it has returned it to the caller.
         * Called object can then resolve its dependencies to other types,
         * including self-references (direct or indirect).
         *
         * @param ctxt Context to use for accessing configuration, resolving
         *    secondary deserializers
         */
        public abstract void resolve(DeserializationContext ctxt)
            throws JsonMappingException;
    }
    

    com/fasterxml/jackson/databind/deser/ResolvableDeserializer.java

     

    ⇒ Jackson Annotations Source Code

    ⇐ Download and Install Jackson Binary Package

    ⇑ Downloading and Reviewing jackson-*.jar

    ⇑⇑ Jackson - Java JSON library

    2022-03-29, 31889👍, 0💬