Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.fasterxml.jackson.databind.deser.std;
  import java.util.*;
Helper class used to contain simple/well-known key deserializers. Following kinds of Objects can be handled currently:
  • Primitive wrappers (Boolean, Byte, Char, Short, Integer, Float, Long, Double)
  • Enums (usually not needed, since EnumMap doesn't call us)
  • java.util.Date
  • java.util.Calendar
  • java.util.UUID
  • java.util.Locale
  • Anything with constructor that takes a single String arg (if not explicitly

  • Anything with static T valueOf(String) factory method (if not explicitly @JsonIgnore'd)
 public class StdKeyDeserializers
     protected final HashMap<JavaTypeKeyDeserializer_keyDeserializers = new HashMap<JavaTypeKeyDeserializer>();
     protected StdKeyDeserializers()
         add(new StdKeyDeserializer.BoolKD());
         add(new StdKeyDeserializer.ByteKD());
         add(new StdKeyDeserializer.CharKD());
         add(new StdKeyDeserializer.ShortKD());
         add(new StdKeyDeserializer.IntKD());
         add(new StdKeyDeserializer.LongKD());
         add(new StdKeyDeserializer.FloatKD());
         add(new StdKeyDeserializer.DoubleKD());
         add(new StdKeyDeserializer.DateKD());
         add(new StdKeyDeserializer.CalendarKD());
         add(new StdKeyDeserializer.UuidKD());
         add(new StdKeyDeserializer.LocaleKD());
     private void add(StdKeyDeserializer kdeser)
         Class<?> keyClass = kdeser.getKeyClass();
         /* As with other cases involving primitive types, we can use
          * default TypeFactory ok, even if it's not our first choice:
         .put(TypeFactory.defaultInstance().constructType(keyClass), kdeser);
     public static HashMap<JavaTypeKeyDeserializerconstructAll()
         return new StdKeyDeserializers().;
     /* Dynamic factory methods
         return StdKeyDeserializer.StringKD.forType(type.getRawClass());
     public static KeyDeserializer constructEnumKeyDeserializer(EnumResolver<?> enumResolver) {
         return new StdKeyDeserializer.EnumKD(enumResolvernull);
     public static KeyDeserializer constructEnumKeyDeserializer(EnumResolver<?> enumResolver,
             AnnotatedMethod factory) {
         return new StdKeyDeserializer.EnumKD(enumResolverfactory);
             JavaType typeJsonDeserializer<?> deser)
         return new StdKeyDeserializer.DelegatingKD(type.getRawClass(), deser);
         /* We don't need full deserialization information, just need to
          * know creators.
         BeanDescription beanDesc = config.introspect(type);
         // Ok, so: can we find T(String) constructor?
         Constructor<?> ctor = beanDesc.findSingleArgConstructor(String.class);
         if (ctor != null) {
             if (config.canOverrideAccessModifiers()) {
            return new StdKeyDeserializer.StringCtorKeyDeserializer(ctor);
        /* or if not, "static T valueOf(String)" (or equivalent marked
         * with @JsonCreator annotation?)
        Method m = beanDesc.findFactoryMethod(String.class);
        if (m != null){
            if (config.canOverrideAccessModifiers()) {
            return new StdKeyDeserializer.StringFactoryKeyDeserializer(m);
        // nope, no such luck...
        return null;
New to GrepCode? Check out our FAQ X