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

Contains public standard implementations of abstraction that Jackson uses.

See: Description

Class Summary
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
AtomicIntegerDeserializer
AtomicLongDeserializer
AtomicReferenceDeserializer
ByteBufferDeserializer
CollectionDeserializer: Basic serializer that can take JSON "Array" structure and construct a `Collection` instance, with typed contents.
CollectionDeserializer.CollectionReferringAccumulator: Helper class for dealing with Object Id references for values contained in collections being deserialized.
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 chaining 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 serialize values from String representation: this includes JSON Strings and other Scalar values that can be coerced into text, like Numbers and Booleans).
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 deserializer 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: 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
StackTraceElementDeserializer.Adapter: Intermediate class used both for convenience of binding and to support `PropertyNamingStrategy`.
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. non-Object, non-Array, values).
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
ThreadGroupDeserializer: Deserializer for the `ThreadGroup` class: due to limited access, will only try to extract `"name"` property and ignores everything else.
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).
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.