2012-07-23 5 views
9

schreiben Ich habe eine einfache POJO-Klasse, die eine andere einfache POJO-Klasse erweitert. Ich verwende die com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy, um die Eigenschaften in diesen POJO-Klassen zu JSON zu marshallen. Allerdings, wenn ich einige der Objekte, die den POJO als null gesetzt ist, dann gibt es diese Eigenschaften als die Zeichenfolge null statt es überhaupt nicht ausgegeben wird.JacksonProviderProxy NULL-Werte in JSON-Ausgabe

für zB.

{ 
    Person: 
    [{ 
     "firstName":"John" 
     "lastName":"null" 
    }] 
} 

statt:

für zB.

{ 
    Person: 
    [{ 
     "firstName":"John" 
    }] 
} 
+0

Ich versuche, dies in einer Web-App zu tun. Also alle Hinweise, wie dies in einer Web-Anwendung zu konfiguieren wäre toll. –

Antwort

18

Verschiedene Optionen stehen zur Unterdrückung der Serialisierung von Eigenschaften mit Nullwerten zur Verfügung, je nach Version von Jackson im Einsatz, und ob die ObjectMapper können direkt konfigurieren.

Mit Jackson 1.1 +, mit direktem Zugriff auf die ObjectMapper konfigurieren, können Sie einfach setSerializationInclusion (Include.NON_NULL) anrufen.

Alternativ können Sie die (Klasse) Typ mit Anmerkungen versehen, die die Eigenschaften hat, für die Null-Eigenschaften Serialisierung unterdrückt werden soll, mit @JsonSerialize (include=Inclusion.NON_NULL).

Mit Jackson 2+, anstelle der @JsonSerialize Annotation, verwenden Sie @JsonInclude (Include.NON_NULL).