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.14.0-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/std/DelegatingDeserializer.java

    package com.fasterxml.jackson.databind.deser.std;
    
    import java.io.IOException;
    import java.util.Collection;
    
    import com.fasterxml.jackson.core.JsonParser;
    import com.fasterxml.jackson.databind.*;
    import com.fasterxml.jackson.databind.deser.*;
    import com.fasterxml.jackson.databind.deser.impl.ObjectIdReader;
    import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
    import com.fasterxml.jackson.databind.type.LogicalType;
    import com.fasterxml.jackson.databind.util.AccessPattern;
    
    /**
     * Base class that simplifies implementations of {@link JsonDeserializer}s
     * that mostly delegate functionality to another deserializer implementation
     * (possibly forming a chaing of deserializers delegating functionality
     * in some cases)
     * 
     * @since 2.1
     */
    public abstract class DelegatingDeserializer
        extends StdDeserializer<Object>
        implements ContextualDeserializer, ResolvableDeserializer
    {
        private static final long serialVersionUID = 1L;
    
        protected final JsonDeserializer<?> _delegatee;
        
        /*
        /**********************************************************************
        /* Construction
        /**********************************************************************
         */
    
        public DelegatingDeserializer(JsonDeserializer<?> d)
        {
            super(d.handledType());
            _delegatee = d;
        }
    
        /*
        /**********************************************************************
        /* Abstract methods to implement
        /**********************************************************************
         */
        
        protected abstract JsonDeserializer<?> newDelegatingInstance(JsonDeserializer<?> newDelegatee);
        
        /*
        /**********************************************************************
        /* Overridden methods for contextualization, resolving
        /**********************************************************************
         */
    
        @Override
        public void resolve(DeserializationContext ctxt) throws JsonMappingException {
            if (_delegatee instanceof ResolvableDeserializer) {
                ((ResolvableDeserializer) _delegatee).resolve(ctxt);
            }
        }
    
        @Override
        public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
                BeanProperty property)
            throws JsonMappingException
        {
            JavaType vt = ctxt.constructType(_delegatee.handledType());
            JsonDeserializer<?> del = ctxt.handleSecondaryContextualization(_delegatee,
                    property, vt);
            if (del == _delegatee) {
                return this;
            }
            return newDelegatingInstance(del);
        }
    
        @Override
        public JsonDeserializer<?> replaceDelegatee(JsonDeserializer<?> delegatee)
        {
            if (delegatee == _delegatee) {
                return this;
            }
            return newDelegatingInstance(delegatee);
        }
    
        /*
        /**********************************************************************
        /* Overridden deserialization methods
        /**********************************************************************
         */
    
        @Override
        public Object deserialize(JsonParser p, DeserializationContext ctxt)
            throws IOException
        {
            return _delegatee.deserialize(p,  ctxt);
        }
    
        @SuppressWarnings("unchecked")
        @Override
        public Object deserialize(JsonParser p, DeserializationContext ctxt,
                Object intoValue)
            throws IOException
        {
            return ((JsonDeserializer<Object>)_delegatee).deserialize(p, ctxt, intoValue);
        }
    
        @Override
        public Object deserializeWithType(JsonParser p, DeserializationContext ctxt,
                TypeDeserializer typeDeserializer)
            throws IOException
        {
            return _delegatee.deserializeWithType(p, ctxt, typeDeserializer);
        }
    
        /*
        /**********************************************************************
        /* Overridden other methods
        /**********************************************************************
         */
    
        @Override
        public boolean isCachable() { return _delegatee.isCachable(); }
    
        @Override // since 2.9
        public Boolean supportsUpdate(DeserializationConfig config) {
            return _delegatee.supportsUpdate(config);
        }
    
        @Override
        public JsonDeserializer<?> getDelegatee() {
            return _delegatee;
        }
    
        @Override
        public SettableBeanProperty findBackReference(String logicalName) {
            // [databind#253]: Hope this works....
            return _delegatee.findBackReference(logicalName);
        }
    
        @Override
        public AccessPattern getNullAccessPattern() {
            return _delegatee.getNullAccessPattern();
        }
    
        @Override
        public Object getNullValue(DeserializationContext ctxt) throws JsonMappingException {
            return _delegatee.getNullValue(ctxt);
        }
    
        @Override
        public Object getEmptyValue(DeserializationContext ctxt) throws JsonMappingException {
            return _delegatee.getEmptyValue(ctxt);
        }
    
        @Override // since 2.12
        public LogicalType logicalType() {
            return _delegatee.logicalType();
        }
    
        @Override
        public Collection<Object> getKnownPropertyNames() { return _delegatee.getKnownPropertyNames(); }
    
        @Override
        public ObjectIdReader getObjectIdReader() { return _delegatee.getObjectIdReader(); }
    }
    

    com/fasterxml/jackson/databind/deser/std/DelegatingDeserializer.java

     

    Or download all of them as a single archive file:

    File name: jackson-databind-2.14.0-sources.jar
    File size: 1187952 bytes
    Release date: 2022-11-05
    Download 
    

     

    Jackson Annotations Source Code

    Download and Install Jackson Binary Package

    Downloading and Reviewing jackson-*.jar

    ⇑⇑ Jackson - Java JSON library

    2022-03-29, 81130👍, 0💬