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

    package com.fasterxml.jackson.databind.deser.std;
    
    import com.fasterxml.jackson.core.JsonLocation;
    import com.fasterxml.jackson.core.io.ContentReference;
    import com.fasterxml.jackson.databind.DeserializationConfig;
    import com.fasterxml.jackson.databind.DeserializationContext;
    import com.fasterxml.jackson.databind.JavaType;
    import com.fasterxml.jackson.databind.PropertyMetadata;
    import com.fasterxml.jackson.databind.PropertyName;
    import com.fasterxml.jackson.databind.deser.CreatorProperty;
    import com.fasterxml.jackson.databind.deser.SettableBeanProperty;
    import com.fasterxml.jackson.databind.deser.ValueInstantiator;
    
    /**
     * For {@link JsonLocation}, we should be able to just implement
     * {@link ValueInstantiator} (not that explicit one would be very
     * hard but...)
     */
    public class JsonLocationInstantiator
        extends ValueInstantiator.Base
    {
        private static final long serialVersionUID = 1L;
    
        public JsonLocationInstantiator() {
            super(JsonLocation.class);
        }
    
        @Override
        public boolean canCreateFromObjectWith() { return true; }
        
        @Override
        public SettableBeanProperty[] getFromObjectArguments(DeserializationConfig config) {
            JavaType intType = config.constructType(Integer.TYPE);
            JavaType longType = config.constructType(Long.TYPE);
            return new SettableBeanProperty[] {
                    // 14-Mar-2021, tatu: with 2.13 and later, not really used,
                    //   but may be produced by older versions so leave as is.
                    creatorProp("sourceRef", config.constructType(Object.class), 0),
                    creatorProp("byteOffset", longType, 1),
                    creatorProp("charOffset", longType, 2),
                    creatorProp("lineNr", intType, 3),
                    creatorProp("columnNr", intType, 4)
            };
        }
    
        private static CreatorProperty creatorProp(String name, JavaType type, int index) {
            return CreatorProperty.construct(PropertyName.construct(name), type, null,
                    null, null, null, index, null, PropertyMetadata.STD_REQUIRED);
        }
    
        @Override
        public Object createFromObjectWith(DeserializationContext ctxt, Object[] args) {
            // 14-Mar-2021, tatu: Before 2.13 constructor directly took "raw" source ref;
            //   with 2.13 changed to use `InputSourceReference`... left almost as is,
            //   for compatibility.
            final ContentReference srcRef = ContentReference.rawReference(args[0]);
            return new JsonLocation(srcRef, _long(args[1]), _long(args[2]),
                    _int(args[3]), _int(args[4]));
        }
    
        private final static long _long(Object o) {
            return (o == null) ? 0L : ((Number) o).longValue();
        }
    
        private final static int _int(Object o) {
            return (o == null) ? 0 : ((Number) o).intValue();
        }
    }
    

    com/fasterxml/jackson/databind/deser/std/JsonLocationInstantiator.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, 80147👍, 0💬