public interface JsonSerializable
JsonGenerator
(and SerializerProvider
if necessary).
Note that implementing this interface binds implementing object closely to Jackson API, and that it is often not necessary to do so -- if class is a bean, it can be serialized without implementing this interface.
Note that while it is possible to just directly implement JsonSerializable
,
actual implementations are strongly recommended to instead extend
JsonSerializable.Base
.
Modifier and Type | Interface and Description |
---|---|
static class |
JsonSerializable.Base
Base class with minimal implementation, as well as couple of extension methods
that core Jackson databinding makes use of.
|
Modifier and Type | Method and Description |
---|---|
void |
serialize(JsonGenerator gen,
SerializerProvider serializers)
Serialization method called when no additional type information is
to be included in serialization.
|
void |
serializeWithType(JsonGenerator gen,
SerializerProvider serializers,
TypeSerializer typeSer)
Serialization method called when additional type information is
expected to be included in serialization, for deserialization to use.
|
void serialize(JsonGenerator gen, SerializerProvider serializers) throws IOException
IOException
void serializeWithType(JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer) throws IOException
Usually implementation consists of a call to one of methods
in TypeSerializer
(such as TypeSerializer.writeTypePrefixForObject(Object, JsonGenerator)
)
followed by serialization of contents,
followed by another call to TypeSerializer
(such as TypeSerializer.writeTypeSuffixForObject(Object, JsonGenerator)
).
Exact methods to call in TypeSerializer
depend on shape of JSON Object used
(Array, Object or scalar like String/Number/Boolean).
Note that some types (most notably, "natural" types: String, Integer, Double and Boolean) never include type information.
IOException
Copyright © 2008–2016 FasterXML. All rights reserved.