Jackson Unterschiedlichen JSONFilter gleichen Klasse

Ich versuche, mit verschiedenen JsonFilters zur Serialisierung von Objekten der gleichen Klasse.

Vorstellen, Klasse Foo

public class Foo{
    Bar p1;
    Bar p2;
}

und Klasse Bar

@JsonFilter("myFilter")
public class Bar{
    String prop1;
    String prop2;
    String prop3;
}

Nun was ich erreichen will ist, verschiedene JsonFilters für die Variablen p1 und p2 in der Klasse Foo.

Zum Beispiel. für p1 habe ich serialisieren möchten nur prop1, und für die p2, die ich serialisieren möchten prop2 und prop3.
Um das folgende json -

{
    "p1": { "prop1":"blabla" }
    "p2": { "prop2":"blabla", "prop3":"blabla" }
}

Also ich würde verwenden Sie die folgenden filter, so dass nur "prop1" bekommen würde serialisiert:

FilterProvider filter = new SimpleFilterProvider().addFilter("myFilter",
    SimpleBeanPropertyFilter.filterOutAllExcept("prop1"));

String json = new ObjectMapper().filteredWriter(filter).writeValueAsString(foo)

Aber mit dieser würde auch dazu führen, p2 serialisiert werden nur prop1

Ich würde gerne erstellen Sie einen weiteren filter für p2 etwa so:

FilterProvider filter2 = new SimpleFilterProvider().addFilter("myFilter",
    SimpleBeanPropertyFilter.filterOutAllExcept("prop2","prop3"));

Aber ich kann wirklich nicht finden, wie es zu implementieren, so dass es gibt verschiedene Filter für p1 und p2 zu sehen, dass Sie der gleichen Klasse Foo.

Danke für das Lesen, ich hoffe, mir kann jemand helfen!

InformationsquelleAutor Subler | 2014-11-20
Schreibe einen Kommentar