## Uses of Interface
com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable

Packages that use JsonFormatVisitable
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.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.jsonFormatVisitors | Classes used for exposing logical structure of POJOs as Jackson sees it, and exposed via `ObjectMapper.acceptJsonFormatVisitor(Class, JsonFormatVisitorWrapper)` and `ObjectMapper.acceptJsonFormatVisitor(com.fasterxml.jackson.databind.JavaType, JsonFormatVisitorWrapper)` methods.
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 JsonFormatVisitable in com.fasterxml.jackson.databind

Classes in com.fasterxml.jackson.databind that implement JsonFormatVisitable
Modifier and Type | Class and Description
--- | ---
`class` | `JsonSerializer<T>` Abstract class that defines API used by `ObjectMapper` (and other chained `JsonSerializer`s too) to serialize Objects of arbitrary types into JSON, using provided `JsonGenerator`.
`static class` | `JsonSerializer.None` This marker class is only to be used with annotations, to indicate that no serializer is configured.

### Uses of JsonFormatVisitable in com.fasterxml.jackson.databind.ext

Classes in com.fasterxml.jackson.databind.ext that implement JsonFormatVisitable
Modifier and Type | Class and Description
--- | ---
`static class` | `CoreXMLSerializers.XMLGregorianCalendarSerializer`
`class` | `DOMSerializer`

### Uses of JsonFormatVisitable in com.fasterxml.jackson.databind.jsonFormatVisitors

Methods in com.fasterxml.jackson.databind.jsonFormatVisitors with parameters of type JsonFormatVisitable
Modifier and Type | Method and Description
--- | ---
`void` | JsonArrayFormatVisitor.`itemsFormat(JsonFormatVisitable handler, JavaType elementType)` Visit method called for structured types, as well as possibly for leaf types (especially if handled by custom serializers).
`void` | JsonArrayFormatVisitor.Base.`itemsFormat(JsonFormatVisitable handler, JavaType elementType)`
`void` | JsonMapFormatVisitor.`keyFormat(JsonFormatVisitable handler, JavaType keyType)` Visit method called to indicate type of keys of the Map type being visited
`void` | JsonMapFormatVisitor.Base.`keyFormat(JsonFormatVisitable handler, JavaType keyType)`
`void` | JsonObjectFormatVisitor.`optionalProperty(String name, JsonFormatVisitable handler, JavaType propertyTypeHint)`
`void` | JsonObjectFormatVisitor.Base.`optionalProperty(String name, JsonFormatVisitable handler, JavaType propertyTypeHint)`
`void` | JsonObjectFormatVisitor.`property(String name, JsonFormatVisitable handler, JavaType propertyTypeHint)` Callback method called when a non-POJO property (typically something like an Enum entry of `EnumMap` type) is being traversed.
`void` | JsonObjectFormatVisitor.Base.`property(String name, JsonFormatVisitable handler, JavaType propertyTypeHint)`
`void` | JsonMapFormatVisitor.`valueFormat(JsonFormatVisitable handler, JavaType valueType)` Visit method called after `JsonMapFormatVisitor.keyFormat(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable, com.fasterxml.jackson.databind.JavaType)` to allow visiting of the value type
`void` | JsonMapFormatVisitor.Base.`valueFormat(JsonFormatVisitable handler, JavaType valueType)`

### Uses of JsonFormatVisitable in com.fasterxml.jackson.databind.ser

Classes in com.fasterxml.jackson.databind.ser that implement JsonFormatVisitable
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).

### Uses of JsonFormatVisitable in com.fasterxml.jackson.databind.ser.impl

Classes in com.fasterxml.jackson.databind.ser.impl that implement JsonFormatVisitable
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`

### Uses of JsonFormatVisitable in com.fasterxml.jackson.databind.ser.std

Classes in com.fasterxml.jackson.databind.ser.std that implement JsonFormatVisitable
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.