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


    package com.fasterxml.jackson.databind.jsontype.impl;
    import java.io.IOException;
    import com.fasterxml.jackson.annotation.JsonTypeInfo;
    import com.fasterxml.jackson.databind.DatabindContext;
    import com.fasterxml.jackson.databind.JavaType;
    import com.fasterxml.jackson.databind.cfg.MapperConfig;
    import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;
    import com.fasterxml.jackson.databind.type.TypeFactory;
    public class MinimalClassNameIdResolver
        extends ClassNameIdResolver
         * Package name of the base class, to be used for determining common
         * prefix that can be omitted from included type id.
         * Does not include the trailing dot.
        protected final String _basePackageName;
         * Same as {@link #_basePackageName}, but includes trailing dot.
        protected final String _basePackagePrefix;
        protected MinimalClassNameIdResolver(JavaType baseType, TypeFactory typeFactory,
                PolymorphicTypeValidator ptv)
            super(baseType, typeFactory, ptv);
            String base = baseType.getRawClass().getName();
            int ix = base.lastIndexOf('.');
            if (ix < 0) { // can this ever occur?
                _basePackageName = "";
                _basePackagePrefix = ".";
            } else {
                _basePackagePrefix = base.substring(0, ix+1);
                _basePackageName = base.substring(0, ix);
        public static MinimalClassNameIdResolver construct(JavaType baseType, MapperConfig<?> config,
                PolymorphicTypeValidator ptv) {
            return new MinimalClassNameIdResolver(baseType, config.getTypeFactory(), ptv);
        public JsonTypeInfo.Id getMechanism() { return JsonTypeInfo.Id.MINIMAL_CLASS; }
        public String idFromValue(Object value)
            String n = value.getClass().getName();
            if (n.startsWith(_basePackagePrefix)) {
                // note: we will leave the leading dot in there
                return n.substring(_basePackagePrefix.length()-1);
            return n;
        protected JavaType _typeFromId(String id, DatabindContext ctxt) throws IOException
            if (id.startsWith(".")) {
                StringBuilder sb = new StringBuilder(id.length() + _basePackageName.length());
                if  (_basePackageName.isEmpty()) {
                    // no package; must remove leading '.' from id
                } else {
                    // otherwise just concatenate package, with leading-dot-partial name
                id = sb.toString();
            return super._typeFromId(id, ctxt);



    ⇒ Jackson Annotations Source Code

    ⇐ Download and Install Jackson Binary Package

    ⇑ Downloading and Reviewing jackson-*.jar

    ⇑⇑ Jackson - Java JSON library

    2022-03-29, 32074👍, 0💬