Wie man keine leere Sammlung in Jackson sendet
Ich habe ein Objekt, das curently, die serialisiert werden:
{
"label" : "label",
"proxyIds" : [ ],
"childIds" : [ 161, 204, 206, 303, 311 ],
"actionIds" : [ 157, 202 ],
}
Dass proxyIds ist leer (nicht null) Sammlung in das java-Objekt.
Wie Konfiguriere ich Jackson nicht, dass das Objekt in das json?
Ich soll das Verhalten ähnlich den "unverpackten" Sammlungen in xml/soap, wo, wenn die Sammlung leer ist, ist es nicht enthalten. Ich brauche nicht zu unterscheiden, zwischen null und leere Sammlung und möchten, reduzieren Sie die Größe des json-payload.
InformationsquelleAutor der Frage Michael Wiles | 2012-01-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies kann eine lange gedreht, aber wie über die Verwendung von Einschlüssen und definieren NON_DEFAULT die Einbeziehung Eigenschaft. Die docs sagen:
"- Wert, gibt an, dass nur Eigenschaften, die Werte, die unterscheiden sich von default-Einstellungen (d.h. Werte, die Sie haben, wenn Bean ist konstruiert mit der Nein-Argumente Konstruktor) sollen einbezogen werden."
Also, wenn der Standard-Wert ein leeres array ist, sollte es überspringen.
Etwas wie:
http://jackson.codehaus.org/1.1.2/javadoc/org/codehaus/jackson/map/annotate/JsonSerialize.Inclusion.html
InformationsquelleAutor der Antwort Usman Ismail
Da Jackson 2.0.0 (25-Mar-2012), Sie können auch die
@JsonInclude
annotation zur Steuerung dieses pro Feld oder pro-Klasse basis.InformationsquelleAutor der Antwort pimlottc