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.deser.std;
    import java.io.IOException;
    import com.fasterxml.jackson.core.*;
    import com.fasterxml.jackson.databind.*;
    import com.fasterxml.jackson.databind.annotation.JacksonStdImpl;
    import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
    import com.fasterxml.jackson.databind.type.LogicalType;
    public class StringDeserializer extends StdScalarDeserializer<String> // non-final since 2.9
        private static final long serialVersionUID = 1L;
         * @since 2.2
        public final static StringDeserializer instance = new StringDeserializer();
        public StringDeserializer() { super(String.class); }
        @Override // since 2.12
        public LogicalType logicalType() {
            return LogicalType.Textual;
        // since 2.6, slightly faster lookups for this very common type
        public boolean isCachable() { return true; }
        @Override // since 2.9
        public Object getEmptyValue(DeserializationContext ctxt) throws JsonMappingException {
            return "";
        public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException
            if (p.hasToken(JsonToken.VALUE_STRING)) {
                return p.getText();
            JsonToken t = p.currentToken();
            // [databind#381]
            if (t == JsonToken.START_ARRAY) {
                return _deserializeFromArray(p, ctxt);
            // need to gracefully handle byte[] data, as base64
            if (t == JsonToken.VALUE_EMBEDDED_OBJECT) {
                Object ob = p.getEmbeddedObject();
                if (ob == null) {
                    return null;
                if (ob instanceof byte[]) {
                    return ctxt.getBase64Variant().encode((byte[]) ob, false);
                // otherwise, try conversion using toString()...
                return ob.toString();
            // 29-Jun-2020, tatu: New! "Scalar from Object" (mostly for XML)
            if (t == JsonToken.START_OBJECT) {
                return ctxt.extractScalarFromObject(p, this, _valueClass);
            // allow coercions for other scalar types
            // 17-Jan-2018, tatu: Related to [databind#1853] avoid FIELD_NAME by ensuring it's
            //   "real" scalar
            if (t.isScalarValue()) {
                String text = p.getValueAsString();
                if (text != null) {
                    return text;
            return (String) ctxt.handleUnexpectedToken(_valueClass, p);
        // Since we can never have type info ("natural type"; String, Boolean, Integer, Double):
        // (is it an error to even call this version?)
        public String deserializeWithType(JsonParser p, DeserializationContext ctxt,
                TypeDeserializer typeDeserializer) throws IOException {
            return deserialize(p, ctxt);



    ⇒ Jackson Annotations Source Code

    ⇐ Download and Install Jackson Binary Package

    ⇑ Downloading and Reviewing jackson-*.jar

    ⇑⇑ Jackson - Java JSON library

    2022-03-29, 31951👍, 0💬