Interface Serializer<T>
-
- Type Parameters:
T- the type of objects this Serializer can serialize.
- All Known Subinterfaces:
Converter<T>
- All Known Implementing Classes:
BeanDescriptor,BeanViewConverter,ClassConverter,ClassMetadataConverter,ComparableConverter,DefaultConverters.ArrayConverter,DefaultConverters.ArrayDequeConverter,DefaultConverters.BigDecimalConverter,DefaultConverters.BigIntegerConverter,DefaultConverters.BooleanConverter,DefaultConverters.ByteArrayAsIntArrayConverter,DefaultConverters.ByteArrayConverter,DefaultConverters.ByteConverter,DefaultConverters.CalendarConverter,DefaultConverters.CharConverter,DefaultConverters.CollectionConverter,DefaultConverters.ComplexMapConverter,DefaultConverters.DateConverter,DefaultConverters.DoubleConverter,DefaultConverters.EnumConverter,DefaultConverters.EnumSetConverter,DefaultConverters.FileConverter,DefaultConverters.FloatConverter,DefaultConverters.HashMapConverter,DefaultConverters.HashTableConverter,DefaultConverters.IntegerConverter,DefaultConverters.LinkedHashMapConverter,DefaultConverters.LinkedHashSetConverter,DefaultConverters.LinkedListConverter,DefaultConverters.LongConverter,DefaultConverters.MapConverter,DefaultConverters.NumberConverter,DefaultConverters.OptionalConverter,DefaultConverters.OptionalDoubleConverter,DefaultConverters.OptionalIntConverter,DefaultConverters.OptionalLongConverter,DefaultConverters.PriorityQueueConverter,DefaultConverters.PropertiesConverter,DefaultConverters.SetConverter,DefaultConverters.ShortConverter,DefaultConverters.StringConverter,DefaultConverters.TimestampConverter,DefaultConverters.TreeMapConverter,DefaultConverters.TreeSetConverter,DefaultConverters.UntypedConverterFactory.UntypedConverter,DefaultConverters.URIConverter,DefaultConverters.URLConverter,DefaultConverters.UUIDConverter,DefaultConverters.WrappedRootValueConverter,EnumConverter,InetAddressConverter,InetSocketAddressConverter,JsonObjectConverter,JSR353Bundle.JsonValueConverter,MapConverter,MissingClassConverter,NullSetConverter,OffsetDateTimeConverter,RuntimeTypeConverter,SerializationSupportConverter,ThrowableConverter,VersionableSerializer,ZonedDateTimeConverter
public interface Serializer<T>Serializers handle serialization by writing a java object of type T to a stream usingObjectWriter. Genson Serializers work like classic serializers from other libraries. Here is an example of a custom serializer that will delegate the serialization of Author type to the library:class Book { String title; int totalPages; Author author; } class Author { String name; } static class BookSerializer implements Serializer<Book> { private final Serializer<Author> authorSerializer; // a reference to a delegated author serializer BookSerializer(Serializer<Author> authorSerializer) { this.authorSerializer = authorSerializer; } public void serialize(Book book, ObjectWriter writer, Context ctx) { // we don't have to worry if book is null by default it is handled by the library. writer.beginObject().writeName("title").writeValue(book.title).writeName("totalPages") .writeValue(book.totalPages).writeName("author"); // again no need to check if author is null the library will handle it authorSerializer.serialize(book.author, writer, ctx); writer.endObject(); } public final static Factory<Serializer<Book>> bookFactory = new Factory<Serializer<Book>>() { public Serializer<Book> create(Type type, Genson genson) { Serializer<Author> authorSerializer = genson.provideConverter(Author.class); return new GoodBookSerializer(authorSerializer); } } }As you see it involves very few lines of code and is quite powerful.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidserialize(T object, ObjectWriter writer, Context ctx)
-
-
-
Method Detail
-
serialize
void serialize(T object, ObjectWriter writer, Context ctx) throws Exception
- Parameters:
object- we want to serialize. The object is of type T or a subclass (if this serializer has been registered for subclasses).writer- to use to write data to the output stream.ctx- the current context.- Throws:
JsonBindingExceptionJsonStreamExceptionException
-
-