jackson filter-Eigenschaften ohne Anmerkungen
public Class User {
private String name;
private Integer age;
...
}
ObjectMapper om = new ObjectMapper();
om.writeValueAsString(user);
Wie kann ich filter-Eigenschaften ohne Verwendung von Annotationen, wie @JsonIgnore?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei Möglichkeiten, mit Jackson
Mixin Anmerkungen :- http://www.cowtowncoder.com/blog/archives/2009/08/entry_305.html
JSON - Filter: - http://wiki.fasterxml.com/JacksonFeatureJsonFilter
Beispiel ohne Eigenschaften name:
Können Sie statt
DynamicMixIn
erstellenMixInByPropName
Hinweis: möchten Sie die exclude-Eigenschaft nur für
User
können Sie parameter ändernObject.class
MethodeaddMixIn
zuUser.class
Ohne Eigenschaften von Typ, den Sie erstellen können
MixInByType
Etwas langsam, aber ich verwende zwei phase kopieren. Erstens mit spring BeanUtils zweitens mit Jackson.
Schrieb ich eine Bibliothek namens Squiggly-Filter, wählt Felder basierend auf einer Teilmenge der Facebook Graph API-syntax. Zum Beispiel, wählen Sie die Postleitzahl der Adresse-Feld der Benutzer-Objekt, verwenden Sie den query-string
?fields=address{zipCode}
. Einer der Vorteile von Squiggly-Filter ist, dass, solange Sie haben Zugang zum ObjectMapper macht, dass die json -, Sie nicht zu haben, um den code ändern, der für jede Art von controller-Methoden.Vorausgesetzt, Sie sind mit der servlet-API (das ist nicht erforderlich, aber wahrscheinlich der häufigste Fall verwenden), können Sie Folgendes tun:
1) Registrieren eines filters
2) Initialisieren Sie die ObjectMapper
3) können Sie nun filtern Sie Ihre json -
Mehr Informationen auf Schnörkelige Filter ist auf github.