2016-05-04 17 views
0

Ich versuche, alle Null-Werte von meinem Json zu entfernen.Entfernen Sie Nullwerte von Json mit Jackson

{ 
    "key" : null 
} 

Ich habe verwendet:

ObjectMapper mapper = new ObjectMapper(); 
mapper.setSerializationInclusion(Include.NON_NULL); 

hier "Schlüssel" ist eine Liste und so, wenn ich die oben Serialisierung Option verwenden, wird die json umgewandelt:

{ 
    "key" : [] 
} 

Ich möchte die json zu sein:

{ 
} 

I d on't wollen

Include.NON_EMPTY 

verwenden, wie ich andere json in meinem Projekt, wo ich die leere Liste und 0 bewertet Tasten zeigen müssen. Gibt es eine Möglichkeit, die nullwertigen Schlüssel zu entfernen, wenn es sich um eine Liste handelt, genau wie für einen Zeichenfolgenwert?

Ich kann Anmerkungen nicht verwenden, da die Klassendateien von xml mit jaxb generiert werden. Klassenstruktur:

public class C1 { 

protected List<C2> key; 

public List<C2> getKey() { 
    if (key == null) { 
     key = new ArrayList<C2>(); 
    } 
    return this.key; 
} 

} 

Ich bin seit einer Weile jetzt fest. Jede Hilfe wird sehr geschätzt. Danke im Voraus.

+0

haben Sie versucht, indem Sie Anmerkungen oberhalb der Klasse verwenden. @ user145078 –

+0

In unserer Produktionsumgebung verwenden wir Jaxb, um xml in pojo zu konvertieren, so dass ich keine Kontrolle über die erstellten Java-Dateien habe und die Annotationen @VikrantKashyap – user145078

+0

nicht verwenden kann, dann habe ich einen benutzerdefinierten NullSerializer geschrieben, um diesen "Schlüssel" zu vermeiden Serialisiertes Objekt. @User –

Antwort

4

Um die Serialisierung Eigenschaften mit null Werte unterdrücken,

können Sie die ObjectMapper direkt dies mit konfigurieren.

mapper.setSerializationInclusion(Include.NON_NULL); 
+0

das ist was ich getan habe. Bei Listenwerten konvertiert es jedoch null in []. Ich möchte diesen Schlüssel aus dem Json selbst entfernen. Gibt es eine Möglichkeit, das zu tun? – user145078

Verwandte Themen