Jackson JSON-Änderungsobjekt vor der Serialisierung

Ich möchte ein Objekt ändern, bevor es serialisiert wird. Ich möchte ein benutzerdefiniertes Serialisierungsprogramm schreiben, um das Objekt zu analysieren, und es dann an das Standardobjektserialisierungsprogramm übergeben.

Das habe ich:

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;

/**
 *
 * @author Me
 */
public class PersonSerializer extends JsonSerializer<Person>{

    @Override
    public void serialize(Person value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {

        //This returns a modified clone of Person value.
        Person safePerson = PrivacyService.getSafePerson(value);

        provider.defaultSerializeValue(safePerson, jgen);

    }

}

Aber das geht nur in einer Endlosschleife. Ich habe auch versucht:

provider.findTypedValueSerializer(Person.class, true, null).serialize(safePerson, jgen, provider);

Das funktioniert, aber es werden keine Felder im Objekt analysiert.

Ich habe auch versucht mit einem@JsonFilter aber es war extrem schwer und hat meine Ladezeiten vervielfacht.

Hilfe! Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage