genobis
8/30/2017 - 7:35 AM

Konwersja/modyfikacja obiektów przy serializacji. Pozwala na podmianę obiektu na obiekt innego typu przed serializacją albo na modyfikację j

Konwersja/modyfikacja obiektów przy serializacji. Pozwala na podmianę obiektu na obiekt innego typu przed serializacją albo na modyfikację jego wartości.

package amage.rest.dto.v1;

import amage.rest.dto.v1.WrappedObject.WrappedObjectSerializationConverter;
import amage.rest.util.v1.MapperProvider;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonView;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.util.StdConverter;
import java.io.IOException;

@JsonSerialize(converter = FooSerializationConverter.class)
public class Foo {
    @JsonIgnore
    private Object originalObject;

    private String serializedObject;

    //whatever

    public static class FooSerializationConverter extends StdConverter<Foo,Foo> {
        @Override
        public Foo convert(Foo value) {
            try {
                value.serializedObject="whatever";
                return value;
            }
            catch (JsonProcessingException ex) {
                throw new ConverterException(ex);
            }
        }
    }
}