## Uses of Class
com.fasterxml.jackson.databind.JsonSerializer

- Packages that use JsonSerializer
  Package | Description
  --- | ---
  com.fasterxml.jackson.databind | Contains basic mapper (conversion) functionality that allows for converting between regular streaming json content and Java objects (beans or Tree Model: support for both is via `ObjectMapper` class, as well as convenience methods included in `JsonParser`
  com.fasterxml.jackson.databind.cfg | Package that contains most of configuration-related classes; exception being couple of most-commonly used configuration things (like Feature enumerations) that are at the main level (`com.fasterxml.jackson.databind`).
  com.fasterxml.jackson.databind.ext | Contains extended support for "external" packages: things that may or may not be present in runtime environment, but that are commonly enough used so that explicit support can be added.
  com.fasterxml.jackson.databind.introspect | Functionality needed for Bean introspection, required for detecting accessors and mutators for Beans, as well as locating and handling method annotations.
  com.fasterxml.jackson.databind.module | Package that contains classes and interfaces to help implement custom extension `Module`s (which are registered using `ObjectMapper.registerModule(com.fasterxml.jackson.databind.Module)`.
  com.fasterxml.jackson.databind.ser | Contains implementation classes of serialization part of data binding.
  com.fasterxml.jackson.databind.ser.impl | Contains implementation classes of serialization part of data binding.
  com.fasterxml.jackson.databind.ser.std |

- - ### Uses of JsonSerializer in com.fasterxml.jackson.databind

    Subclasses of JsonSerializer in com.fasterxml.jackson.databind
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `JsonSerializer.None` This marker class is only to be used with annotations, to indicate that no serializer is configured.

    Fields in com.fasterxml.jackson.databind declared as JsonSerializer
    Modifier and Type | Field and Description
    --- | ---
    `protected JsonSerializer<Object>` | SerializerProvider.`_keySerializer` Serializer used to output non-null keys of Maps (which will get output as JSON Objects), if not null; if null, us the standard default key serializer.
    `protected JsonSerializer<Object>` | SerializerProvider.`_nullKeySerializer` Serializer used to (try to) output a null key, due to an entry of `Map` having null key.
    `protected JsonSerializer<Object>` | SerializerProvider.`_nullValueSerializer` Serializer used to output a null value.
    `protected JsonSerializer<Object>` | ObjectWriter.`_rootSerializer` We may pre-fetch serializer if `ObjectWriter._rootType` is known, and if so, reuse it afterwards.
    `protected JsonSerializer<Object>` | SerializerProvider.`_unknownTypeSerializer` Serializer that gets called for values of types for which no serializers can be constructed.
    `static JsonSerializer<Object>` | SerializerProvider.`DEFAULT_NULL_KEY_SERIALIZER`
    `protected static JsonSerializer<Object>` | SerializerProvider.`DEFAULT_UNKNOWN_SERIALIZER` NOTE: changed to `protected` for 2.3; no need to be publicly available.

    Methods in com.fasterxml.jackson.databind that return JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<Object>` | SerializerProvider.`_createAndCacheUntypedSerializer(Class<?> type)` Method that will try to construct a value serializer; and if one is successfully created, cache it for reuse.
    `protected JsonSerializer<Object>` | SerializerProvider.`_createAndCacheUntypedSerializer(JavaType type)`
    `protected JsonSerializer<Object>` | SerializerProvider.`_createUntypedSerializer(JavaType type)`
    `protected JsonSerializer<Object>` | SerializerProvider.`_findExplicitUntypedSerializer(Class<?> runtimeType)` Method that will try to find a serializer, either from cache or by constructing one; but will not return an "unknown" serializer if this can not be done but rather returns null.
    `protected JsonSerializer<Object>` | SerializerProvider.`_handleContextualResolvable(JsonSerializer<?> ser, BeanProperty property)` Helper method called to resolve and contextualize given serializer, if and as necessary.
    `protected JsonSerializer<Object>` | SerializerProvider.`_handleResolvable(JsonSerializer<?> ser)`
    `protected JsonSerializer<Object>` | ObjectWriter.`_prefetchRootSerializer(SerializationConfig config, JavaType valueType)` Method called to locate (root) serializer ahead of time, if permitted by configuration.
    `JsonSerializer<Object>` | SerializerProvider.`findKeySerializer(JavaType keyType, BeanProperty property)` Method called to get the serializer to use for serializing non-null Map keys.
    `JsonSerializer<Object>` | SerializerProvider.`findNullKeySerializer(JavaType serializationType, BeanProperty property)` Method called to find a serializer to use for null values for given declared type.
    `JsonSerializer<Object>` | SerializerProvider.`findNullValueSerializer(BeanProperty property)` Method called to get the serializer to use for serializing null values for specified property.
    `JsonSerializer<Object>` | SerializerProvider.`findPrimaryPropertySerializer(Class<?> valueType, BeanProperty property)`
    `JsonSerializer<Object>` | SerializerProvider.`findPrimaryPropertySerializer(JavaType valueType, BeanProperty property)` Similar to `SerializerProvider.findValueSerializer(JavaType, BeanProperty)`, but used when finding "primary" property value serializer (one directly handling value of the property).
    `JsonSerializer<Object>` | SerializerProvider.`findTypedValueSerializer(Class<?> valueType, boolean cache, BeanProperty property)` Method called to locate regular serializer, matching type serializer, and if both found, wrap them in a serializer that calls both in correct sequence.
    `JsonSerializer<Object>` | SerializerProvider.`findTypedValueSerializer(JavaType valueType, boolean cache, BeanProperty property)` Method called to locate regular serializer, matching type serializer, and if both found, wrap them in a serializer that calls both in correct sequence.
    `JsonSerializer<Object>` | SerializerProvider.`findValueSerializer(Class<?> valueType, BeanProperty property)` Method called to get hold of a serializer for a value of given type; or if no such serializer can be found, a default handler (which may do a best-effort generic serialization or just simply throw an exception when invoked).
    `JsonSerializer<Object>` | SerializerProvider.`findValueSerializer(JavaType valueType, BeanProperty property)` Similar to `SerializerProvider.findValueSerializer(Class,BeanProperty)`, but takes full generics-aware type instead of raw class.
    `JsonSerializer<Object>` | SerializerProvider.`getDefaultNullKeySerializer()`
    `JsonSerializer<Object>` | SerializerProvider.`getDefaultNullValueSerializer()`
    `JsonSerializer<?>` | JsonSerializer.`getDelegatee()` Accessor that can be used to determine if this serializer uses another serializer for actual serialization, by delegating calls.
    `JsonSerializer<Object>` | SerializerProvider.`getUnknownTypeSerializer(Class<?> unknownType)` Method called to get the serializer to use if provider can not determine an actual type-specific serializer to use; typically when none of `SerializerFactory` instances are able to construct a serializer.
    `JsonSerializer<?>` | SerializerProvider.`handleContextualization(JsonSerializer<?> ser, BeanProperty property)` Deprecated. Since 2.3 (and to be removed from 2.4); use `SerializerProvider.handlePrimaryContextualization(com.fasterxml.jackson.databind.JsonSerializer<?>, com.fasterxml.jackson.databind.BeanProperty)` or `SerializerProvider.handleSecondaryContextualization(com.fasterxml.jackson.databind.JsonSerializer<?>, com.fasterxml.jackson.databind.BeanProperty)` instead
    `JsonSerializer<?>` | SerializerProvider.`handlePrimaryContextualization(JsonSerializer<?> ser, BeanProperty property)` Method called for primary property serializers (ones directly created to serialize values of a POJO property), to handle details of resolving `ContextualSerializer` with given property context.
    `JsonSerializer<?>` | SerializerProvider.`handleSecondaryContextualization(JsonSerializer<?> ser, BeanProperty property)` Method called for secondary property serializers (ones NOT directly created to serialize values of a POJO property but instead created as a dependant serializer -- such as value serializers for structured types, or serializers for root values) to handle details of resolving `ContextualDeserializer` with given property context.
    `JsonSerializer<T>` | JsonSerializer.`replaceDelegatee(JsonSerializer<?> delegatee)` Method that can be called to try to replace serializer this serializer delegates calls to.
    `abstract JsonSerializer<Object>` | SerializerProvider.`serializerInstance(Annotated annotated, Object serDef)` Method that can be called to construct and configure serializer instance, either given a `Class` to instantiate (with default constructor), or an uninitialized serializer instance.
    `JsonSerializer<T>` | JsonSerializer.`unwrappingSerializer(NameTransformer unwrapper)` Method that will return serializer instance that produces "unwrapped" serialization, if applicable for type being serialized (which is the case for some serializers that produce JSON Objects as output).

    Methods in com.fasterxml.jackson.databind with parameters of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<Object>` | SerializerProvider.`_handleContextualResolvable(JsonSerializer<?> ser, BeanProperty property)` Helper method called to resolve and contextualize given serializer, if and as necessary.
    `protected JsonSerializer<Object>` | SerializerProvider.`_handleResolvable(JsonSerializer<?> ser)`
    `JsonSerializer<?>` | SerializerProvider.`handleContextualization(JsonSerializer<?> ser, BeanProperty property)` Deprecated. Since 2.3 (and to be removed from 2.4); use `SerializerProvider.handlePrimaryContextualization(com.fasterxml.jackson.databind.JsonSerializer<?>, com.fasterxml.jackson.databind.BeanProperty)` or `SerializerProvider.handleSecondaryContextualization(com.fasterxml.jackson.databind.JsonSerializer<?>, com.fasterxml.jackson.databind.BeanProperty)` instead
    `JsonSerializer<?>` | SerializerProvider.`handlePrimaryContextualization(JsonSerializer<?> ser, BeanProperty property)` Method called for primary property serializers (ones directly created to serialize values of a POJO property), to handle details of resolving `ContextualSerializer` with given property context.
    `JsonSerializer<?>` | SerializerProvider.`handleSecondaryContextualization(JsonSerializer<?> ser, BeanProperty property)` Method called for secondary property serializers (ones NOT directly created to serialize values of a POJO property but instead created as a dependant serializer -- such as value serializers for structured types, or serializers for root values) to handle details of resolving `ContextualDeserializer` with given property context.
    `JsonSerializer<T>` | JsonSerializer.`replaceDelegatee(JsonSerializer<?> delegatee)` Method that can be called to try to replace serializer this serializer delegates calls to.
    `void` | SerializerProvider.`setDefaultKeySerializer(JsonSerializer<Object> ks)` Method that can be used to specify serializer that will be used to write JSON property names matching null keys for Java Maps (which will throw an exception if try write such property name)
    `void` | SerializerProvider.`setNullKeySerializer(JsonSerializer<Object> nks)` Method that can be used to specify serializer to use for serializing all non-null JSON property names, unless more specific key serializer is found (i.e.
    `void` | SerializerProvider.`setNullValueSerializer(JsonSerializer<Object> nvs)` Method that can be used to specify serializer that will be used to write JSON values matching Java null values instead of default one (which simply writes JSON null).

    Constructors in com.fasterxml.jackson.databind with parameters of type JsonSerializer
    Constructor and Description
    `ObjectWriter(ObjectWriter base, SerializationConfig config, JavaType rootType, JsonSerializer<Object> rootSer, PrettyPrinter pp, FormatSchema s, CharacterEscapes escapes)` Copy constructor used for building variations.

  - ### Uses of JsonSerializer in com.fasterxml.jackson.databind.cfg

    Methods in com.fasterxml.jackson.databind.cfg that return JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `abstract JsonSerializer<?>` | HandlerInstantiator.`serializerInstance(SerializationConfig config, Annotated annotated, Class<?> serClass)` Method called to get an instance of serializer of specified type.

  - ### Uses of JsonSerializer in com.fasterxml.jackson.databind.ext

    Subclasses of JsonSerializer in com.fasterxml.jackson.databind.ext
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `CoreXMLSerializers.XMLGregorianCalendarSerializer`
    `class` | `DOMSerializer`

    Methods in com.fasterxml.jackson.databind.ext that return JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `JsonSerializer<?>` | OptionalHandlerFactory.`findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)`
    `JsonSerializer<?>` | CoreXMLSerializers.`findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)`

  - ### Uses of JsonSerializer in com.fasterxml.jackson.databind.introspect

    Methods in com.fasterxml.jackson.databind.introspect that return types with arguments of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `Class<? extends JsonSerializer<?>>` | JacksonAnnotationIntrospector.`findContentSerializer(Annotated a)`
    `Class<? extends JsonSerializer<?>>` | JacksonAnnotationIntrospector.`findKeySerializer(Annotated a)`

  - ### Uses of JsonSerializer in com.fasterxml.jackson.databind.module

    Fields in com.fasterxml.jackson.databind.module with type parameters of type JsonSerializer
    Modifier and Type | Field and Description
    --- | ---
    `protected HashMap<ClassKey,JsonSerializer<?>>` | SimpleSerializers.`_classMappings` Class-based mappings that are used both for exact and sub-class matches.
    `protected HashMap<ClassKey,JsonSerializer<?>>` | SimpleSerializers.`_interfaceMappings` Interface-based matches.

    Methods in com.fasterxml.jackson.databind.module that return JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<?>` | SimpleSerializers.`_findInterfaceMapping(Class<?> cls, ClassKey key)`
    `JsonSerializer<?>` | SimpleSerializers.`findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)`

    Methods in com.fasterxml.jackson.databind.module with parameters of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | SimpleSerializers.`_addSerializer(Class<?> cls, JsonSerializer<?> ser)`
    `<T> SimpleModule` | SimpleModule.`addKeySerializer(Class<? extends T> type, JsonSerializer<T> ser)`
    `<T> void` | SimpleSerializers.`addSerializer(Class<? extends T> type, JsonSerializer<T> ser)`
    `<T> SimpleModule` | SimpleModule.`addSerializer(Class<? extends T> type, JsonSerializer<T> ser)`
    `void` | SimpleSerializers.`addSerializer(JsonSerializer<?> ser)` Method for adding given serializer for type that `handledType()` specifies (which MUST return a non-null class; and can NOT be `Object`, as a sanity check).
    `SimpleModule` | SimpleModule.`addSerializer(JsonSerializer<?> ser)`
    `JsonSerializer<?>` | SimpleSerializers.`findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | SimpleSerializers.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`

    Method parameters in com.fasterxml.jackson.databind.module with type arguments of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `void` | SimpleSerializers.`addSerializers(List<JsonSerializer<?>> sers)`

    Constructor parameters in com.fasterxml.jackson.databind.module with type arguments of type JsonSerializer
    Constructor and Description
    `SimpleModule(String name, Version version, List<JsonSerializer<?>> serializers)`
    `SimpleModule(String name, Version version, Map<Class<?>,JsonDeserializer<?>> deserializers, List<JsonSerializer<?>> serializers)`
    `SimpleSerializers(List<JsonSerializer<?>> sers)`

  - ### Uses of JsonSerializer in com.fasterxml.jackson.databind.ser

    Subclasses of JsonSerializer in com.fasterxml.jackson.databind.ser
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanSerializer` Serializer class that can serialize Java objects that map to JSON Object output.
    `class` | `ContainerSerializer<T>` Intermediate base class for serializers used for serializing types that contain element(s) of other types, such as arrays, `Collection`s (`Lists`, `Sets` etc) and `Map`s and iterable things (`Iterator`s).

    Fields in com.fasterxml.jackson.databind.ser declared as JsonSerializer
    Modifier and Type | Field and Description
    --- | ---
    `protected JsonSerializer<Object>` | BeanPropertyWriter.`_nullSerializer` Serializer used for writing out null values, if any: if null, null values are to be suppressed.
    `protected JsonSerializer<Object>` | BeanPropertyWriter.`_serializer` Serializer to use for writing out the value: null if it can not be known statically; non-null if it can.

    Fields in com.fasterxml.jackson.databind.ser with type parameters of type JsonSerializer
    Modifier and Type | Field and Description
    --- | ---
    `protected static HashMap<String,JsonSerializer<?>>` | BasicSerializerFactory.`_concrete` Since these are all JDK classes, we shouldn't have to worry about ClassLoader used to load them.
    `protected static HashMap<String,Class<? extends JsonSerializer<?>>>` | BasicSerializerFactory.`_concreteLazy` Actually it may not make much sense to eagerly instantiate all kinds of serializers: so this Map actually contains class references, not instances

    Methods in com.fasterxml.jackson.databind.ser that return JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<?>` | BeanSerializerFactory.`_createSerializer2(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)`
    `protected JsonSerializer<Object>` | BeanPropertyWriter.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | BasicSerializerFactory.`_findContentSerializer(SerializerProvider prov, Annotated a)` Helper method called to try to find whether there is an annotation in the class that indicates content ("value") serializer to use.
    `protected JsonSerializer<Object>` | BasicSerializerFactory.`_findKeySerializer(SerializerProvider prov, Annotated a)` Helper method called to try to find whether there is an annotation in the class that indicates key serializer to use.
    `JsonSerializer<?>` | BeanSerializerBuilder.`build()` Method called to create `BeanSerializer` instance with all accumulated information.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `Object[]` (and subtypes, except for String).
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `List` types that support efficient by-index access
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildContainerSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildEnumSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)`
    `JsonSerializer<?>` | BasicSerializerFactory.`buildEnumSetSerializer(JavaType enumType)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildIterableSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc, boolean staticTyping)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildIteratorSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc, boolean staticTyping)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, boolean staticTyping, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `Map` types.
    `protected JsonSerializer<Object>` | BeanSerializerFactory.`constructBeanSerializer(SerializerProvider prov, BeanDescription beanDesc)` Method called to construct serializer for serializing specified bean type.
    `JsonSerializer<?>` | ContextualSerializer.`createContextual(SerializerProvider prov, BeanProperty property)` Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property.
    `abstract JsonSerializer<Object>` | SerializerFactory.`createKeySerializer(SerializationConfig config, JavaType baseType, JsonSerializer<Object> defaultImpl)` Method called to create serializer to use for serializing JSON property names (which must be output as `JsonToken.FIELD_NAME`) for Map that has specified declared key type, and is for specified property (or, if property is null, as root value)
    `JsonSerializer<Object>` | BasicSerializerFactory.`createKeySerializer(SerializationConfig config, JavaType keyType, JsonSerializer<Object> defaultImpl)`
    `abstract JsonSerializer<Object>` | SerializerFactory.`createSerializer(SerializerProvider prov, JavaType baseType)` Method called to create (or, for immutable serializers, reuse) a serializer for given type.
    `JsonSerializer<Object>` | BeanSerializerFactory.`createSerializer(SerializerProvider prov, JavaType origType)` Main serializer constructor method.
    `abstract JsonSerializer<Object>` | BasicSerializerFactory.`createSerializer(SerializerProvider prov, JavaType type)`
    `JsonSerializer<?>` | Serializers.`findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified array type.
    `JsonSerializer<?>` | Serializers.Base.`findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<Object>` | BeanSerializerFactory.`findBeanSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc)` Method that will try to construct a `BeanSerializer` for given class.
    `JsonSerializer<?>` | Serializers.`findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified "Collection-like" type (type that acts like `Collection`, but does not implement it).
    `JsonSerializer<?>` | Serializers.Base.`findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | Serializers.`findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified `Collection` type.
    `JsonSerializer<?>` | Serializers.Base.`findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findConvertingSerializer(SerializerProvider prov, Annotated a, JsonSerializer<?> ser)` Helper method that will check whether given annotated entity (usually class, but may also be a property accessor) indicates that a `Converter` is to be used; and if so, to construct and return suitable serializer for it.
    `JsonSerializer<?>` | Serializers.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified "Map-like" type (type that acts like `Map`, but does not implement it).
    `JsonSerializer<?>` | Serializers.Base.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | Serializers.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified `Map` type.
    `JsonSerializer<?>` | Serializers.Base.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findOptionalStdSerializer(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)` Overridable method called after checking all other types.
    `JsonSerializer<?>` | Serializers.`findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)` Method called by serialization framework first time a serializer is needed for specified type, which is not of a container type (for which other methods are called).
    `JsonSerializer<?>` | Serializers.Base.`findSerializer(SerializationConfig config, JavaType type, BeanDescription beanDesc)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findSerializerByAddonType(SerializationConfig config, JavaType javaType, BeanDescription beanDesc, boolean staticTyping)` Reflection-based serialized find method, which checks if given class implements one of recognized "add-on" interfaces.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findSerializerByAnnotations(SerializerProvider prov, JavaType type, BeanDescription beanDesc)` Method called to see if one of primary per-class annotations (or related, like implementing of `JsonSerializable`) determines the serializer to use.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findSerializerByLookup(JavaType type, SerializationConfig config, BeanDescription beanDesc, boolean staticTyping)` Method that will use fast lookup (and identity comparison) methods to see if we know serializer to use for given type.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findSerializerByPrimaryType(SerializerProvider prov, JavaType type, BeanDescription beanDesc, boolean staticTyping)` Method for checking if we can determine serializer to use based on set of known primary types, checking for set of known base types (exact matches having been compared against with `findSerializerByLookup`).
    `protected JsonSerializer<Object>` | BasicSerializerFactory.`findSerializerFromAnnotation(SerializerProvider prov, Annotated a)` Helper method called to check if a class or method has an annotation (@link com.fasterxml.jackson.databind.annotation.JsonSerialize#using) that tells the class to use for serialization.
    `abstract JsonSerializer<?>` | ContainerSerializer.`getContentSerializer()` Accessor for serializer used for serializing contents (List and array elements, Map values etc) of the container for which this serializer is used, if it is known statically.
    `JsonSerializer<Object>` | BeanPropertyWriter.`getSerializer()`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyArraySerializer(SerializationConfig config, ArrayType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)` Method called by `DeserializerFactory` after it has constructed the standard serializer for given `ArrayType` to make it possible to either replace or augment this serializer with additional functionality.
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyCollectionLikeSerializer(SerializationConfig config, CollectionLikeType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyCollectionSerializer(SerializationConfig config, CollectionType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyEnumSerializer(SerializationConfig config, JavaType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyKeySerializer(SerializationConfig config, JavaType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)` Method called by `DeserializerFactory` after it has constructed the default key serializer to use for serializing `Map` keys of given type.
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyMapLikeSerializer(SerializationConfig config, MapLikeType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyMapSerializer(SerializationConfig config, MapType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer)` Method called by `BeanSerializerFactory` after constructing default bean serializer instance with properties collected and ordered earlier.
    `JsonSerializer<Object>` | DefaultSerializerProvider.`serializerInstance(Annotated annotated, Object serDef)`
    `JsonSerializer<Object>` | SerializerCache.`typedValueSerializer(Class<?> cls)`
    `JsonSerializer<Object>` | SerializerCache.`typedValueSerializer(JavaType type)`
    `JsonSerializer<Object>` | SerializerCache.`untypedValueSerializer(Class<?> type)` Method that checks if the shared (and hence, synchronized) lookup Map might have untyped serializer for given type.
    `JsonSerializer<Object>` | SerializerCache.`untypedValueSerializer(JavaType type)`
    `JsonSerializer<Object>` | BeanSerializer.`unwrappingSerializer(NameTransformer unwrapper)`

    Methods in com.fasterxml.jackson.databind.ser with parameters of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | BeanPropertyWriter.`_handleSelfReference(Object bean, JsonGenerator jgen, SerializerProvider prov, JsonSerializer<?> ser)` Method called to handle a direct self-reference through this property.
    `protected void` | BeanPropertyWriter.`_handleSelfReference(Object bean, JsonSerializer<?> ser)` Deprecated. Since 2.3 Use overloaded variants
    `void` | SerializerCache.`addAndResolveNonTypedSerializer(Class<?> type, JsonSerializer<Object> ser, SerializerProvider provider)`
    `void` | SerializerCache.`addAndResolveNonTypedSerializer(JavaType type, JsonSerializer<Object> ser, SerializerProvider provider)`
    `void` | SerializerCache.`addTypedSerializer(Class<?> cls, JsonSerializer<Object> ser)`
    `void` | SerializerCache.`addTypedSerializer(JavaType type, JsonSerializer<Object> ser)` Method called if none of lookups succeeded, and caller had to construct a serializer.
    `void` | BeanPropertyWriter.`assignNullSerializer(JsonSerializer<Object> nullSer)` Method called to assign null value serializer for property
    `void` | BeanPropertyWriter.`assignSerializer(JsonSerializer<Object> ser)` Method called to assign value serializer for property
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `Object[]` (and subtypes, except for String).
    `ContainerSerializer<?>` | BasicSerializerFactory.`buildCollectionSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, JsonSerializer<Object> valueSerializer)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, boolean staticTyping, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `List` types that support efficient by-index access
    `ContainerSerializer<?>` | BasicSerializerFactory.`buildIndexedListSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, JsonSerializer<Object> valueSerializer)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, boolean staticTyping, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `Map` types.
    `protected JsonSerializer<?>` | BasicSerializerFactory.`buildMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, boolean staticTyping, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Helper method that handles configuration details when constructing serializers for `Map` types.
    `protected BeanPropertyWriter` | PropertyBuilder.`buildWriter(BeanPropertyDefinition propDef, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, TypeSerializer contentTypeSer, AnnotatedMember am, boolean defaultUseStaticTyping)` Deprecated. Since 2.3, use variant that takes `SerializerProvider` as first argument -- to be removed from 2.4
    `protected BeanPropertyWriter` | PropertyBuilder.`buildWriter(SerializerProvider prov, BeanPropertyDefinition propDef, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, TypeSerializer contentTypeSer, AnnotatedMember am, boolean defaultUseStaticTyping)`
    `abstract JsonSerializer<Object>` | SerializerFactory.`createKeySerializer(SerializationConfig config, JavaType baseType, JsonSerializer<Object> defaultImpl)` Method called to create serializer to use for serializing JSON property names (which must be output as `JsonToken.FIELD_NAME`) for Map that has specified declared key type, and is for specified property (or, if property is null, as root value)
    `JsonSerializer<Object>` | BasicSerializerFactory.`createKeySerializer(SerializationConfig config, JavaType keyType, JsonSerializer<Object> defaultImpl)`
    `JsonSerializer<?>` | Serializers.`findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified array type.
    `JsonSerializer<?>` | Serializers.Base.`findArraySerializer(SerializationConfig config, ArrayType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | Serializers.`findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified "Collection-like" type (type that acts like `Collection`, but does not implement it).
    `JsonSerializer<?>` | Serializers.Base.`findCollectionLikeSerializer(SerializationConfig config, CollectionLikeType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | Serializers.`findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified `Collection` type.
    `JsonSerializer<?>` | Serializers.Base.`findCollectionSerializer(SerializationConfig config, CollectionType type, BeanDescription beanDesc, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `protected JsonSerializer<?>` | BasicSerializerFactory.`findConvertingSerializer(SerializerProvider prov, Annotated a, JsonSerializer<?> ser)` Helper method that will check whether given annotated entity (usually class, but may also be a property accessor) indicates that a `Converter` is to be used; and if so, to construct and return suitable serializer for it.
    `JsonSerializer<?>` | Serializers.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified "Map-like" type (type that acts like `Map`, but does not implement it).
    `JsonSerializer<?>` | Serializers.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified "Map-like" type (type that acts like `Map`, but does not implement it).
    `JsonSerializer<?>` | Serializers.Base.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | Serializers.Base.`findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | Serializers.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified `Map` type.
    `JsonSerializer<?>` | Serializers.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)` Method called by serialization framework first time a serializer is needed for specified `Map` type.
    `JsonSerializer<?>` | Serializers.Base.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | Serializers.Base.`findMapSerializer(SerializationConfig config, MapType type, BeanDescription beanDesc, JsonSerializer<Object> keySerializer, TypeSerializer elementTypeSerializer, JsonSerializer<Object> elementValueSerializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyArraySerializer(SerializationConfig config, ArrayType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)` Method called by `DeserializerFactory` after it has constructed the standard serializer for given `ArrayType` to make it possible to either replace or augment this serializer with additional functionality.
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyCollectionLikeSerializer(SerializationConfig config, CollectionLikeType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyCollectionSerializer(SerializationConfig config, CollectionType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyEnumSerializer(SerializationConfig config, JavaType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyKeySerializer(SerializationConfig config, JavaType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)` Method called by `DeserializerFactory` after it has constructed the default key serializer to use for serializing `Map` keys of given type.
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyMapLikeSerializer(SerializationConfig config, MapLikeType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifyMapSerializer(SerializationConfig config, MapType valueType, BeanDescription beanDesc, JsonSerializer<?> serializer)`
    `JsonSerializer<?>` | BeanSerializerModifier.`modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer)` Method called by `BeanSerializerFactory` after constructing default bean serializer instance with properties collected and ordered earlier.
    `void` | DefaultSerializerProvider.`serializeValue(JsonGenerator jgen, Object value, JavaType rootType, JsonSerializer<Object> ser)` The method to be called by `ObjectWriter` for serializing given value (assumed to be of specified root type, instead of runtime type of value), when it may know specific `JsonSerializer` to use.

    Constructors in com.fasterxml.jackson.databind.ser with parameters of type JsonSerializer
    Constructor and Description
    `BeanPropertyWriter(BeanPropertyDefinition propDef, AnnotatedMember member, Annotations contextAnnotations, JavaType declaredType, JsonSerializer<?> ser, TypeSerializer typeSer, JavaType serType, boolean suppressNulls, Object suppressableValue)`

  - ### Uses of JsonSerializer in com.fasterxml.jackson.databind.ser.impl

    Subclasses of JsonSerializer in com.fasterxml.jackson.databind.ser.impl
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanAsArraySerializer` Specialized POJO serializer that differs from `BeanSerializer` in that instead of producing a JSON Object it will output a JSON Array, omitting field names, and serializing values in specified serialization order.
    `class` | `FailingSerializer` Special bogus "serializer" that will throw `JsonGenerationException` if its `FailingSerializer.serialize(java.lang.Object, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)` gets invoked.
    `class` | `IndexedListSerializer` This is an optimized serializer for Lists that can be efficiently traversed by index (as opposed to others, such as `LinkedList` that can not}.
    `class` | `IndexedStringListSerializer` Efficient implement for serializing `List`s that contains Strings and are random-accessible.
    `class` | `IteratorSerializer`
    `class` | `StringArraySerializer` Standard serializer used for `String[]` values.
    `class` | `StringCollectionSerializer` Efficient implement for serializing `Collection`s that contain Strings.
    `class` | `TypeWrappedSerializer` Simple serializer that will call configured type serializer, passing in configured data serializer, and exposing it all as a simple serializer.
    `class` | `UnknownSerializer`
    `class` | `UnwrappingBeanSerializer`

    Fields in com.fasterxml.jackson.databind.ser.impl declared as JsonSerializer
    Modifier and Type | Field and Description
    --- | ---
    `protected JsonSerializer<Object>` | StringArraySerializer.`_elementSerializer` Value serializer to use, if it's not the standard one (if it is we can optimize serialization a lot)
    `protected JsonSerializer<Object>` | TypeWrappedSerializer.`_serializer`
    `protected JsonSerializer<String>` | StringCollectionSerializer.`_serializer`
    `protected JsonSerializer<String>` | IndexedStringListSerializer.`_serializer`
    `JsonSerializer<Object>` | PropertySerializerMap.SerializerAndMapResult.`serializer`
    `JsonSerializer<Object>` | ObjectIdWriter.`serializer` Serializer used for serializing id values.

    Methods in com.fasterxml.jackson.databind.ser.impl that return JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<Object>` | UnwrappingBeanPropertyWriter.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `JsonSerializer<?>` | StringCollectionSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | StringArraySerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | IndexedStringListSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<Object>` | JsonSerializerMap.`find(SerializerCache.TypeKey key)`
    `JsonSerializer<?>` | StringArraySerializer.`getContentSerializer()`
    `abstract JsonSerializer<Object>` | PropertySerializerMap.`serializerFor(Class<?> type)` Main lookup method.
    `JsonSerializer<Object>` | ReadOnlyClassToSerializerMap.`typedValueSerializer(Class<?> cls)`
    `JsonSerializer<Object>` | ReadOnlyClassToSerializerMap.`typedValueSerializer(JavaType type)`
    `JsonSerializer<Object>` | ReadOnlyClassToSerializerMap.`untypedValueSerializer(Class<?> cls)`
    `JsonSerializer<Object>` | ReadOnlyClassToSerializerMap.`untypedValueSerializer(JavaType type)`
    `JsonSerializer<Object>` | UnwrappingBeanSerializer.`unwrappingSerializer(NameTransformer transformer)`
    `JsonSerializer<Object>` | BeanAsArraySerializer.`unwrappingSerializer(NameTransformer transformer)`

    Methods in com.fasterxml.jackson.databind.ser.impl with parameters of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `void` | UnwrappingBeanPropertyWriter.`assignSerializer(JsonSerializer<Object> ser)`
    `abstract PropertySerializerMap` | PropertySerializerMap.`newWith(Class<?> type, JsonSerializer<Object> serializer)`
    `void` | IndexedListSerializer.`serializeContentsUsing(List<?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `IteratorSerializer` | IteratorSerializer.`withResolved(BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `IndexedListSerializer` | IndexedListSerializer.`withResolved(BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `ObjectIdWriter` | ObjectIdWriter.`withSerializer(JsonSerializer<?> ser)`

    Method parameters in com.fasterxml.jackson.databind.ser.impl with type arguments of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `static ReadOnlyClassToSerializerMap` | ReadOnlyClassToSerializerMap.`from(HashMap<SerializerCache.TypeKey,JsonSerializer<Object>> src)` Factory method for creating the "blueprint" lookup map.

    Constructors in com.fasterxml.jackson.databind.ser.impl with parameters of type JsonSerializer
    Constructor and Description
    `IndexedListSerializer(IndexedListSerializer src, BeanProperty property, TypeSerializer vts, JsonSerializer<?> valueSerializer)`
    `IndexedListSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, BeanProperty property, JsonSerializer<Object> valueSerializer)`
    `IndexedStringListSerializer(JsonSerializer<?> ser)`
    `IteratorSerializer(IteratorSerializer src, BeanProperty property, TypeSerializer vts, JsonSerializer<?> valueSerializer)`
    `ObjectIdWriter(JavaType t, SerializableString propName, ObjectIdGenerator<?> gen, JsonSerializer<?> ser, boolean alwaysAsId)`
    `PropertySerializerMap.SerializerAndMapResult(JsonSerializer<Object> serializer, PropertySerializerMap map)`
    `StringArraySerializer(StringArraySerializer src, BeanProperty prop, JsonSerializer<?> ser)`
    `StringCollectionSerializer(JsonSerializer<?> ser)`
    `TypeWrappedSerializer(TypeSerializer typeSer, JsonSerializer<?> ser)`

    Constructor parameters in com.fasterxml.jackson.databind.ser.impl with type arguments of type JsonSerializer
    Constructor and Description
    `JsonSerializerMap(Map<SerializerCache.TypeKey,JsonSerializer<Object>> serializers)`

  - ### Uses of JsonSerializer in com.fasterxml.jackson.databind.ser.std

    Subclasses of JsonSerializer in com.fasterxml.jackson.databind.ser.std
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ArraySerializerBase<T>` Intermediate base class for serializers used for various Java arrays.
    `class` | `AsArraySerializerBase<T>` Base class for serializers that will output contents as JSON arrays; typically serializers used for `Collection` and array types.
    `class` | `BeanSerializerBase` Base class both for the standard bean serializer, and couple of variants that only differ in small details.
    `class` | `BooleanSerializer` Serializer used for primitive boolean, as well as java.util.Boolean wrapper type.
    `class` | `ByteBufferSerializer`
    `class` | `CalendarSerializer` Standard serializer for `Calendar`.
    `class` | `ClassSerializer` Also: default bean access will not do much good with Class.class.
    `class` | `CollectionSerializer` Fallback serializer for cases where Collection is not known to be of type for which more specializer serializer exists (such as index-accessible List).
    `class` | `DateSerializer` For efficiency, we will serialize Dates as longs, instead of potentially more readable Strings.
    `class` | `DateTimeSerializerBase<T>`
    `class` | `EnumMapSerializer` Specialized serializer for `EnumMap`s.
    `class` | `EnumSerializer` Standard serializer used for `Enum` types.
    `class` | `EnumSetSerializer`
    `class` | `FileSerializer` For now, File objects get serialized by just outputting absolute (but not canonical) name as String value
    `class` | `InetAddressSerializer` Simple serializer for `InetAddress`.
    `class` | `InetSocketAddressSerializer` Simple serializer for `InetSocketAddress`.
    `class` | `IterableSerializer`
    `class` | `JsonValueSerializer` Serializer class that can serialize Object that have a `JsonValue` annotation to indicate that serialization should be done by calling the method annotated, and serializing result it returns.
    `class` | `MapSerializer` Standard serializer implementation for serializing {link java.util.Map} types.
    `class` | `NonTypedScalarSerializerBase<T>` Intermediate base class for limited number of scalar types that should never include type information.
    `class` | `NullSerializer` This is a simple dummy serializer that will just output literal JSON null value whenever serialization is requested.
    `class` | `NumberSerializer` As a fallback, we may need to use this serializer for other types of `Number`s: both custom types and "big" numbers like `BigInteger` and `BigDecimal`.
    `protected static class` | `NumberSerializers.Base<T>`
    `static class` | `NumberSerializers.DoubleSerializer` This is the special serializer for regular `Double`s (and primitive doubles)
    `static class` | `NumberSerializers.FloatSerializer`
    `static class` | `NumberSerializers.IntegerSerializer` This is the special serializer for regular `Integer`s (and primitive ints)
    `static class` | `NumberSerializers.IntLikeSerializer` Similar to `NumberSerializers.IntegerSerializer`, but will not cast to Integer: instead, cast is to `Number`, and conversion is by calling `Number.intValue()`.
    `static class` | `NumberSerializers.LongSerializer`
    `static class` | `NumberSerializers.ShortSerializer`
    `class` | `ObjectArraySerializer` Generic serializer for Object arrays (`Object[]`).
    `class` | `RawSerializer<T>` This is a simple dummy serializer that will just output raw values by calling toString() on value to serialize.
    `class` | `SerializableSerializer` Generic handler for types that implement `JsonSerializable`.
    `class` | `SqlDateSerializer` Compared to regular `Date` serialization, we do use String representation here.
    `class` | `SqlTimeSerializer`
    `class` | `StaticListSerializerBase<T extends Collection<?>>` Intermediate base class for Lists, Collections and Arrays that contain static (non-dynamic) value types.
    `static class` | `StdArraySerializers.BooleanArraySerializer`
    `static class` | `StdArraySerializers.ByteArraySerializer` Unlike other integral number array serializers, we do not just print out byte values as numbers.
    `static class` | `StdArraySerializers.CharArraySerializer` Character arrays are different from other integral number arrays in that they are most likely to be textual data, and should be written as Strings, not arrays of entries.
    `static class` | `StdArraySerializers.DoubleArraySerializer`
    `static class` | `StdArraySerializers.FloatArraySerializer`
    `static class` | `StdArraySerializers.IntArraySerializer`
    `static class` | `StdArraySerializers.LongArraySerializer`
    `static class` | `StdArraySerializers.ShortArraySerializer`
    `protected static class` | `StdArraySerializers.TypedPrimitiveArraySerializer<T>` Intermediate base class used for cases where we may add type information (excludes boolean/int/double arrays).
    `class` | `StdDelegatingSerializer` Serializer implementation where given Java type is first converted to an intermediate "delegate type" (using a configured `Converter`, and then this delegate value is serialized by Jackson.
    `static class` | `StdJdkSerializers.AtomicBooleanSerializer`
    `static class` | `StdJdkSerializers.AtomicIntegerSerializer`
    `static class` | `StdJdkSerializers.AtomicLongSerializer`
    `static class` | `StdJdkSerializers.AtomicReferenceSerializer`
    `class` | `StdKeySerializer` Specialized serializer that can be used as the generic key serializer, when serializing `Map`s to JSON Objects.
    `static class` | `StdKeySerializers.CalendarKeySerializer`
    `static class` | `StdKeySerializers.DateKeySerializer`
    `static class` | `StdKeySerializers.StringKeySerializer`
    `class` | `StdScalarSerializer<T>`
    `class` | `StdSerializer<T>` Base class used by all standard serializers, and can also be used for custom serializers (in fact, this is the recommended base class to use).
    `class` | `StringSerializer` This is the special serializer for regular `String`s.
    `class` | `TimeZoneSerializer`
    `class` | `TokenBufferSerializer` We also want to directly support serialization of `TokenBuffer`; and since it is part of core package, it can not implement `JsonSerializable` (which is only included in the mapper package)
    `class` | `ToStringSerializer` Simple general purpose serializer, useful for any type for which `Object.toString()` returns the desired JSON value.
    `class` | `UUIDSerializer` Specialized `JsonSerializer` to output `UUID`s.

    Fields in com.fasterxml.jackson.databind.ser.std declared as JsonSerializer
    Modifier and Type | Field and Description
    --- | ---
    `protected JsonSerializer<Object>` | StdDelegatingSerializer.`_delegateSerializer` Underlying serializer for type `T<.code>.`
    `protected JsonSerializer<Object>` | ObjectArraySerializer.`_elementSerializer` Value serializer to use, if it can be statically determined.
    `protected JsonSerializer<Object>` | AsArraySerializerBase.`_elementSerializer` Value serializer to use, if it can be statically determined
    `protected JsonSerializer<Object>` | MapSerializer.`_keySerializer` Key serializer to use, if it can be statically determined
    `protected JsonSerializer<Object>` | MapProperty.`_keySerializer`
    `protected JsonSerializer<Object>` | MapSerializer.`_valueSerializer` Value serializer to use, if it can be statically determined
    `protected JsonSerializer<Object>` | MapProperty.`_valueSerializer`
    `protected JsonSerializer<Object>` | JsonValueSerializer.`_valueSerializer`
    `protected JsonSerializer<Object>` | EnumMapSerializer.`_valueSerializer` Value serializer to use, if it can be statically determined
    `protected static JsonSerializer<Object>` | StdKeySerializers.`DEFAULT_KEY_SERIALIZER`
    `protected static JsonSerializer<Object>` | StdKeySerializers.`DEFAULT_STRING_SERIALIZER`
    `protected static JsonSerializer<?>` | StdKeySerializers.DateKeySerializer.`instance`
    `protected static JsonSerializer<?>` | StdKeySerializers.CalendarKeySerializer.`instance`

    Fields in com.fasterxml.jackson.databind.ser.std with type parameters of type JsonSerializer
    Modifier and Type | Field and Description
    --- | ---
    `protected static HashMap<String,JsonSerializer<?>>` | StdArraySerializers.`_arraySerializers`

    Methods in com.fasterxml.jackson.databind.ser.std that return JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonSerializer<Object>` | ObjectArraySerializer.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | MapSerializer.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | AsArraySerializerBase.`_findAndAddDynamic(PropertySerializerMap map, Class<?> type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | ObjectArraySerializer.`_findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | MapSerializer.`_findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider)`
    `protected JsonSerializer<Object>` | AsArraySerializerBase.`_findAndAddDynamic(PropertySerializerMap map, JavaType type, SerializerProvider provider)`
    `JsonSerializer<?>` | StdDelegatingSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | ObjectArraySerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | NumberSerializers.Base.`createContextual(SerializerProvider prov, BeanProperty property)`
    `JsonSerializer<?>` | MapSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | JsonValueSerializer.`createContextual(SerializerProvider provider, BeanProperty property)` We can try to find the actual serializer for value, if we can statically figure out what the result type must be.
    `JsonSerializer<?>` | EnumSerializer.`createContextual(SerializerProvider prov, BeanProperty property)` To support some level of per-property configuration, we will need to make things contextual.
    `JsonSerializer<?>` | EnumMapSerializer.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | DateTimeSerializerBase.`createContextual(SerializerProvider prov, BeanProperty property)`
    `JsonSerializer<?>` | BeanSerializerBase.`createContextual(SerializerProvider provider, BeanProperty property)`
    `JsonSerializer<?>` | AsArraySerializerBase.`createContextual(SerializerProvider provider, BeanProperty property)` This method is needed to resolve contextual annotations like per-property overrides, as well as do recursive call to `createContextual` of content serializer, if known statically.
    `protected JsonSerializer<?>` | StdSerializer.`findConvertingContentSerializer(SerializerProvider provider, BeanProperty prop, JsonSerializer<?> existingSerializer)` Helper method that can be used to see if specified property has annotation indicating that a converter is to be used for contained values (contents of structured types; array/List/Map values)
    `protected JsonSerializer<Object>` | BeanSerializerBase.`findConvertingSerializer(SerializerProvider provider, BeanPropertyWriter prop)` Helper method that can be used to see if specified property is annotated to indicate use of a converter for property value (in case of container types, it is container type itself, not key or content type).
    `static JsonSerializer<?>` | StdArraySerializers.`findStandardImpl(Class<?> cls)` Accessor for checking to see if there is a standard serializer for given primitive value type.
    `JsonSerializer<?>` | StdArraySerializers.BooleanArraySerializer.`getContentSerializer()`
    `JsonSerializer<?>` | StdArraySerializers.ShortArraySerializer.`getContentSerializer()`
    `JsonSerializer<?>` | StdArraySerializers.IntArraySerializer.`getContentSerializer()`
    `JsonSerializer<?>` | StdArraySerializers.LongArraySerializer.`getContentSerializer()`
    `JsonSerializer<?>` | StdArraySerializers.FloatArraySerializer.`getContentSerializer()`
    `JsonSerializer<?>` | StdArraySerializers.DoubleArraySerializer.`getContentSerializer()`
    `JsonSerializer<?>` | ObjectArraySerializer.`getContentSerializer()`
    `JsonSerializer<?>` | MapSerializer.`getContentSerializer()`
    `JsonSerializer<?>` | EnumMapSerializer.`getContentSerializer()`
    `JsonSerializer<?>` | AsArraySerializerBase.`getContentSerializer()`
    `JsonSerializer<?>` | StdDelegatingSerializer.`getDelegatee()`
    `JsonSerializer<?>` | MapSerializer.`getKeySerializer()` Accessor for currently assigned key serializer.
    `static JsonSerializer<Object>` | StdKeySerializers.`getStdKeySerializer(JavaType keyType)`

    Methods in com.fasterxml.jackson.databind.ser.std with parameters of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `static MapSerializer` | MapSerializer.`construct(String[] ignoredList, JavaType mapType, boolean staticValueType, TypeSerializer vts, JsonSerializer<Object> keySerializer, JsonSerializer<Object> valueSerializer)` Deprecated. Since 2.3 use the method that takes `filterId`
    `static MapSerializer` | MapSerializer.`construct(String[] ignoredList, JavaType mapType, boolean staticValueType, TypeSerializer vts, JsonSerializer<Object> keySerializer, JsonSerializer<Object> valueSerializer)` Deprecated. Since 2.3 use the method that takes `filterId`
    `static MapSerializer` | MapSerializer.`construct(String[] ignoredList, JavaType mapType, boolean staticValueType, TypeSerializer vts, JsonSerializer<Object> keySerializer, JsonSerializer<Object> valueSerializer, Object filterId)`
    `static MapSerializer` | MapSerializer.`construct(String[] ignoredList, JavaType mapType, boolean staticValueType, TypeSerializer vts, JsonSerializer<Object> keySerializer, JsonSerializer<Object> valueSerializer, Object filterId)`
    `protected JsonSerializer<?>` | StdSerializer.`findConvertingContentSerializer(SerializerProvider provider, BeanProperty prop, JsonSerializer<?> existingSerializer)` Helper method that can be used to see if specified property has annotation indicating that a converter is to be used for contained values (contents of structured types; array/List/Map values)
    `protected boolean` | StdSerializer.`isDefaultSerializer(JsonSerializer<?> serializer)` Method that can be called to determine if given serializer is the default serializer Jackson uses; as opposed to a custom serializer installed by a module or calling application.
    `protected boolean` | JsonValueSerializer.`isNaturalTypeWithStdHandling(Class<?> rawType, JsonSerializer<?> ser)`
    `void` | MapProperty.`reset(Object key, Object value, JsonSerializer<Object> keySer, JsonSerializer<Object> valueSer)` Initialization method that needs to be called before passing property to filter.
    `void` | MapProperty.`reset(Object key, Object value, JsonSerializer<Object> keySer, JsonSerializer<Object> valueSer)` Initialization method that needs to be called before passing property to filter.
    `void` | CollectionSerializer.`serializeContentsUsing(Collection<?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `protected void` | EnumMapSerializer.`serializeContentsUsing(EnumMap<? extends Enum<?>,?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> valueSer)`
    `void` | ObjectArraySerializer.`serializeContentsUsing(Object[] value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)`
    `protected void` | MapSerializer.`serializeFieldsUsing(Map<?,?> value, JsonGenerator jgen, SerializerProvider provider, JsonSerializer<Object> ser)` Method called to serialize fields, when the value type is statically known, so that value serializer is passed and does not need to be fetched from provider.
    `protected StdDelegatingSerializer` | StdDelegatingSerializer.`withDelegate(Converter<Object,?> converter, JavaType delegateType, JsonSerializer<?> delegateSerializer)` Method used for creating resolved contextual instances.
    `JsonValueSerializer` | JsonValueSerializer.`withResolved(BeanProperty property, JsonSerializer<?> ser, boolean forceTypeInfo)`
    `MapSerializer` | MapSerializer.`withResolved(BeanProperty property, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer, HashSet<String> ignored)` Deprecated.
    `MapSerializer` | MapSerializer.`withResolved(BeanProperty property, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer, HashSet<String> ignored)` Deprecated.
    `MapSerializer` | MapSerializer.`withResolved(BeanProperty property, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer, HashSet<String> ignored, boolean sortKeys)`
    `MapSerializer` | MapSerializer.`withResolved(BeanProperty property, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer, HashSet<String> ignored, boolean sortKeys)`
    `ObjectArraySerializer` | ObjectArraySerializer.`withResolved(BeanProperty prop, TypeSerializer vts, JsonSerializer<?> ser)`
    `IterableSerializer` | IterableSerializer.`withResolved(BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `EnumSetSerializer` | EnumSetSerializer.`withResolved(BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `CollectionSerializer` | CollectionSerializer.`withResolved(BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `abstract AsArraySerializerBase<T>` | AsArraySerializerBase.`withResolved(BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `EnumMapSerializer` | EnumMapSerializer.`withValueSerializer(BeanProperty prop, JsonSerializer<?> ser)`

    Method parameters in com.fasterxml.jackson.databind.ser.std with type arguments of type JsonSerializer
    Modifier and Type | Method and Description
    --- | ---
    `static void` | NumberSerializers.`addAll(Map<String,JsonSerializer<?>> allDeserializers)`

    Constructors in com.fasterxml.jackson.databind.ser.std with parameters of type JsonSerializer
    Constructor and Description
    `AsArraySerializerBase(AsArraySerializerBase<?> src, BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `AsArraySerializerBase(Class<?> cls, JavaType et, boolean staticTyping, TypeSerializer vts, BeanProperty property, JsonSerializer<Object> elementSerializer)`
    `CollectionSerializer(CollectionSerializer src, BeanProperty property, TypeSerializer vts, JsonSerializer<?> valueSerializer)`
    `CollectionSerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, BeanProperty property, JsonSerializer<Object> valueSerializer)`
    `EnumMapSerializer(EnumMapSerializer src, BeanProperty property, JsonSerializer<?> ser)` Constructor called when a contextual instance is created.
    `EnumMapSerializer(JavaType valueType, boolean staticTyping, EnumValues keyEnums, TypeSerializer vts, JsonSerializer<Object> valueSerializer)`
    `EnumSetSerializer(EnumSetSerializer src, BeanProperty property, TypeSerializer vts, JsonSerializer<?> valueSerializer)`
    `IterableSerializer(IterableSerializer src, BeanProperty property, TypeSerializer vts, JsonSerializer<?> valueSerializer)`
    `JsonValueSerializer(JsonValueSerializer src, BeanProperty property, JsonSerializer<?> ser, boolean forceTypeInfo)`
    `JsonValueSerializer(Method valueMethod, JsonSerializer<Object> ser)`
    `MapSerializer(HashSet<String> ignoredEntries, JavaType keyType, JavaType valueType, boolean valueTypeIsStatic, TypeSerializer vts, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer)`
    `MapSerializer(HashSet<String> ignoredEntries, JavaType keyType, JavaType valueType, boolean valueTypeIsStatic, TypeSerializer vts, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer)`
    `MapSerializer(MapSerializer src, BeanProperty property, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer, HashSet<String> ignored)`
    `MapSerializer(MapSerializer src, BeanProperty property, JsonSerializer<?> keySerializer, JsonSerializer<?> valueSerializer, HashSet<String> ignored)`
    `ObjectArraySerializer(JavaType elemType, boolean staticTyping, TypeSerializer vts, JsonSerializer<Object> elementSerializer)`
    `ObjectArraySerializer(ObjectArraySerializer src, BeanProperty property, TypeSerializer vts, JsonSerializer<?> elementSerializer)`
    `StdDelegatingSerializer(Converter<Object,?> converter, JavaType delegateType, JsonSerializer<?> delegateSerializer)`

Copyright © 2014 FasterXML. All Rights Reserved.