# 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.
ClassDeserializer |
CollectionDeserializer | Basic serializer that can take JSON "Array" structure and construct a `Collection` instance, with typed contents.
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.
DateDeserializers.TimeZoneDeserializer | As per [JACKSON-522], also need special handling for TimeZones
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.
EnumDeserializer.FactoryBasedDeserializer | Deserializer that uses a single-String static factory method for locating Enum values by String id.
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.
JacksonDeserializers | Container class for core Jackson type deserializers.
JacksonDeserializers.JavaTypeDeserializer | Deserializer for `JavaType` values.
JacksonDeserializers.JsonLocationInstantiator | For `JsonLocation`, we should be able to just implement `ValueInstantiator` (not that explicit one would be very hard but...)
JacksonDeserializers.TokenBufferDeserializer | We also want to directly support deserialization of `TokenBuffer`.
JdkDeserializers | Container class that contains serializers for JDK types that require special handling for some reason.
JdkDeserializers.AtomicBooleanDeserializer |
JdkDeserializers.AtomicReferenceDeserializer |
JdkDeserializers.CharsetDeserializer |
JdkDeserializers.CurrencyDeserializer |
JdkDeserializers.FileDeserializer |
JdkDeserializers.InetAddressDeserializer | As per [JACKSON-484], also need special handling for InetAddress...
JdkDeserializers.LocaleDeserializer | Kept protected as it's not meant to be extensible at this point
JdkDeserializers.PatternDeserializer |
JdkDeserializers.StackTraceElementDeserializer |
JdkDeserializers.URIDeserializer |
JdkDeserializers.URLDeserializer |
JdkDeserializers.UUIDDeserializer |
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.
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.
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 | Base class for simple key deserializers.
StdKeyDeserializers | Helper class used to contain simple/well-known key deserializers.
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.
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).

## 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.