# Package com.fasterxml.jackson.databind.deser.std

Contains public standard implementations of abstraction that Jackson uses.

See: Description

- Class Summary
  Class | Description
  --- | ---
  ArrayBlockingQueueDeserializer | We need a custom deserializer both because `ArrayBlockingQueue` has no default constructor AND because it has size limit used for constructing underlying storage automatically.
  AtomicBooleanDeserializer |
  AtomicReferenceDeserializer |
  ByteBufferDeserializer |
  CollectionDeserializer | Basic serializer that can take JSON "Array" structure and construct a `Collection` instance, with typed contents.
  CollectionDeserializer.CollectionReferringAccumulator |
  ContainerDeserializerBase<T> | Intermediate base deserializer class that adds more shared accessor so that other classes can access information about contained (value) types
  DateDeserializers | Container class for core JDK date/time type deserializers.
  DateDeserializers.CalendarDeserializer |
  DateDeserializers.DateBasedDeserializer<T> |
  DateDeserializers.DateDeserializer | Simple deserializer for handling `Date` values.
  DateDeserializers.SqlDateDeserializer | Compared to plain old `Date`, SQL version is easier to deal with: mostly because it is more limited.
  DateDeserializers.TimestampDeserializer | Simple deserializer for handling `Timestamp` values.
  DelegatingDeserializer | Base class that simplifies implementations of `JsonDeserializer`s that mostly delegate functionality to another deserializer implementation (possibly forming a chaing of deserializers delegating functionality in some cases)
  EnumDeserializer | Deserializer class that can deserialize instances of specified Enum class from Strings and Integers.
  EnumMapDeserializer | Deserializer for `EnumMap` values.
  EnumSetDeserializer | Standard deserializer for `EnumSet`s.
  FromStringDeserializer<T> | Base class for simple deserializers that only accept JSON String values as the source.
  FromStringDeserializer.Std | "Chameleon" deserializer that works on simple types that are deserialized from a simple String.
  JdkDeserializers | Container class that contains serializers for JDK types that require special handling for some reason.
  JsonLocationInstantiator | For `JsonLocation`, we should be able to just implement `ValueInstantiator` (not that explicit one would be very hard but...)
  JsonNodeDeserializer | Deserializer that can build instances of `JsonNode` from any JSON content, using appropriate `JsonNode` type.
  MapDeserializer | Basic serializer that can take JSON "Object" structure and construct a `Map` instance, with typed contents.
  MapEntryDeserializer | Basic serializer that can take JSON "Object" structure and construct a `Map` instance, with typed contents.
  NullifyingDeserializer | Bogus deserializer that will simply skip all content there is to map and returns Java null reference.
  NumberDeserializers | Container class for deserializers that handle core JDK primitive (and matching wrapper) types, as well as standard "big" numeric types.
  NumberDeserializers.BigDecimalDeserializer |
  NumberDeserializers.BigIntegerDeserializer | This is bit trickier to implement efficiently, while avoiding overflow problems.
  NumberDeserializers.BooleanDeserializer |
  NumberDeserializers.ByteDeserializer |
  NumberDeserializers.CharacterDeserializer |
  NumberDeserializers.DoubleDeserializer |
  NumberDeserializers.FloatDeserializer |
  NumberDeserializers.IntegerDeserializer |
  NumberDeserializers.LongDeserializer |
  NumberDeserializers.NumberDeserializer | For type `Number.class`, we can just rely on type mappings that plain `JsonParser.getNumberValue()` returns.
  NumberDeserializers.PrimitiveOrWrapperDeserializer<T> |
  NumberDeserializers.ShortDeserializer |
  ObjectArrayDeserializer | Basic serializer that can serialize non-primitive arrays.
  PrimitiveArrayDeserializers<T> | Container for deserializers used for instantiating "primitive arrays", arrays that contain non-object java primitive types.
  ReferenceTypeDeserializer<T> | Base deserializer implementation for properties `ReferenceType` values.
  StackTraceElementDeserializer |
  StdDelegatingDeserializer<T> | Deserializer implementation where given Java type is first deserialized by a standard Jackson deserializer into a delegate type; and then this delegate type is converted using a configured `Converter` into desired target type.
  StdDeserializer<T> | Base class for common deserializers.
  StdKeyDeserializer | Default `KeyDeserializer` implementation used for most `Map` types Jackson supports.
  StdKeyDeserializers | Helper class used to contain simple/well-known key deserializers.
  StdNodeBasedDeserializer<T> | Convenience deserializer that may be used to deserialize values given an intermediate tree representation (`JsonNode`).
  StdScalarDeserializer<T> | Base class for deserializers that handle types that are serialized as JSON scalars (non-structured, i.e.
  StdValueInstantiator | Default `ValueInstantiator` implementation, which supports Creator methods that can be indicated by standard Jackson annotations.
  StringArrayDeserializer | Separate implementation for serializing String arrays (instead of using `ObjectArrayDeserializer`.
  StringCollectionDeserializer | Specifically optimized version for `Collection`s that contain String values; reason is that this is a very common type and we can make use of the fact that Strings are final.
  StringDeserializer |
  ThrowableDeserializer | Deserializer that builds on basic `BeanDeserializer` but override some aspects like instance construction.
  TokenBufferDeserializer | We also want to directly support deserialization of `TokenBuffer`.
  UntypedObjectDeserializer | Deserializer implementation that is used if it is necessary to bind content of "unknown" type; something declared as basic `Object` (either explicitly, or due to type erasure).
  UntypedObjectDeserializer.Vanilla |
  UUIDDeserializer |

## Package com.fasterxml.jackson.databind.deser.std Description

Contains public standard implementations of abstraction that Jackson uses. This means that they are not merely implementation details, but part of semi-public interface where project tries to maintain backwards compatibility at higher level than for 'impl' types (although less so than with fully public interfaces).

Note that since this package was only added relatively late in development cycle, not all classes that belong here are included. Plan is to move more classes over time.