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/ValueInstantiators.java

    package com.fasterxml.jackson.databind.deser;
    
    import com.fasterxml.jackson.databind.*;
    
    /**
     * Interface for providers of {@link ValueInstantiator} instances.
     * Implemented when an object wants to provide custom value instantiators,
     * usually to support custom value types with alternate constructors, or
     * which need specified post-processing after construction but before
     * binding data.
     */
    public interface ValueInstantiators
    {
        /**
         * Method called to find the {@link ValueInstantiator} to use for creating
         * instances of specified type during deserialization.
         * Note that a default value instantiator is always created first and passed;
         * if an implementation does not want to modify or replace it, it has to return
         * passed instance as is (returning null is an error)
         * 
         * @param config Deserialization configuration in use
         * @param beanDesc Additional information about POJO type to be instantiated
         * @param defaultInstantiator Instantiator that will be used if no changes are made;
         *   passed to allow custom instances to use annotation-provided information
         *   (note, however, that earlier {@link ValueInstantiators} may have changed it to
         *   a custom instantiator already)
         *   
         * @return Instantiator to use; either <code>defaultInstantiator</code> that was passed,
         *   or a custom variant; cannot be null.
         */
        public ValueInstantiator findValueInstantiator(DeserializationConfig config,
                BeanDescription beanDesc, ValueInstantiator defaultInstantiator);
    
        /**
         * Basic "NOP" implementation that can be used as the base class for custom implementations.
         * Safer to extend (instead of implementing {@link ValueInstantiators}) in case later
         * Jackson versions add new methods in base interface.
         */
        public static class Base implements ValueInstantiators
        {
            @Override
            public ValueInstantiator findValueInstantiator(DeserializationConfig config,
                    BeanDescription beanDesc, ValueInstantiator defaultInstantiator) {
                return defaultInstantiator;
            }
        }
    }
    

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

     

    ⇒ Jackson Annotations Source Code

    ⇐ Download and Install Jackson Binary Package

    ⇑ Downloading and Reviewing jackson-*.jar

    ⇑⇑ Jackson - Java JSON library

    2022-03-29, 32072👍, 0💬