[Java] Wie kann man Jackson sagen, ein Feld während der Serialisierung zu ignorieren, wenn sein Wert null ist?


Answers

Mit Jackson> 1.9.11 und <2.x verwende @JsonSerialize Annotation, um das zu tun:

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

Question

Wie kann Jackson so konfiguriert werden, dass ein Feldwert während der Serialisierung ignoriert wird, wenn der Wert dieses Felds null ist.

Beispielsweise:

public class SomeClass {
   // what jackson annotation causes jackson to skip over this value if it is null but will 
   // serialize it otherwise 
   private String someValue; 
}






in meinem Fall

@JsonInclude(Include.NON_EMPTY)

hat es funktioniert.




Verwenden Sie in Jackson 2.x:

@JsonInclude(JsonInclude.Include.NON_NULL)



Das beunruhigt mich seit geraumer Zeit und ich habe das Problem endlich gefunden. Das Problem war auf einen falschen Import zurückzuführen. Früher hatte ich gebraucht

com.fasterxml.jackson.databind.annotation.JsonSerialize

Was war veraltet. Ersetzen Sie einfach den Import durch

import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;

und benutze es als

@JsonSerialize(include=Inclusion.NON_NULL)



Wenn Sie diese Regel allen Modellen in Jackson 2.6+ hinzufügen möchten, verwenden Sie:

mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);



Jackson 2.x + benutzen

mapper.getSerializationConfig().withSerializationInclusion(JsonInclude.Include.NON_NULL);