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 TypeSerializer.writeTypePrefix(com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.core.type.WritableTypeId)
followed by serialization of contents,
followed by a call to TypeSerializer.writeTypeSuffix(com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.core.type.WritableTypeId)
).
Details of the type id argument to pass 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–2023 FasterXML. All rights reserved.