JsonSerializer.None, SerializerBasepublic abstract class JsonSerializer<T>
extends java.lang.Object
ObjectMapper (and
other chained JsonSerializers too) to serialize Objects of
arbitrary types into JSON, using provided JsonGenerator.
NOTE: it is recommended that custom serializers extend
SerializerBase instead
of this class, since it will implement many of optional
methods of this class.
| Modifier and Type | Class | Description |
|---|---|---|
static class |
JsonSerializer.None |
This marker class is only to be used with annotations, to
indicate that no serializer is configured.
|
| Constructor | Description |
|---|---|
JsonSerializer() |
| Modifier and Type | Method | Description |
|---|---|---|
java.lang.Class<T> |
handledType() |
Method for accessing type of Objects this serializer can handle.
|
boolean |
isUnwrappingSerializer() |
Accessor for checking whether this serializer is an
"unwrapping" serializer; this is necessary to know since
it may also require caller to suppress writing of the
leading property name.
|
abstract void |
serialize(T value,
JsonGenerator jgen,
SerializerProvider provider) |
Method that can be called to ask implementation to serialize
values of type this serializer handles.
|
void |
serializeWithType(T value,
JsonGenerator jgen,
SerializerProvider provider,
TypeSerializer typeSer) |
Method that can be called to ask implementation to serialize
values of type this serializer handles, using specified type serializer
for embedding necessary type information.
|
JsonSerializer<T> |
unwrappingSerializer() |
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).
|
public JsonSerializer<T> unwrappingSerializer()
Default implementation just returns serializer as-is, indicating that no unwrapped variant exists
public boolean isUnwrappingSerializer()
public abstract void serialize(T value, JsonGenerator jgen, SerializerProvider provider) throws java.io.IOException, JsonProcessingException
value - Value to serialize; can not be null.jgen - Generator used to output resulting Json contentprovider - Provider that can be used to get serializers for
serializing Objects value contains, if any.java.io.IOExceptionJsonProcessingExceptionpublic void serializeWithType(T value, JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer) throws java.io.IOException, JsonProcessingException
Default implementation will ignore serialization of type information,
and just calls serialize(T, org.codehaus.jackson.JsonGenerator, org.codehaus.jackson.map.SerializerProvider): serializers that can embed
type information should override this to implement actual handling.
Most common such handling is done by something like:
// note: method to call depends on whether this type is serialized as JSON scalar, object or Array! typeSer.writeTypePrefixForScalar(value, jgen); serialize(value, jgen, provider); typeSer.writeTypeSuffixForScalar(value, jgen);
value - Value to serialize; can not be null.jgen - Generator used to output resulting Json contentprovider - Provider that can be used to get serializers for
serializing Objects value contains, if any.typeSer - Type serializer to use for including type informationjava.io.IOExceptionJsonProcessingExceptionpublic java.lang.Class<T> handledType()
Default implementation will return null, which essentially means
same as returning Object.class would; that is, that
nothing is known about handled type.