Question Pour Spring Boot 1.2.3, comment définir la valeur null ignorée dans la sérialisation JSON?


Dans Spring Boot 1.2.3, nous pouvons personnaliser Jackson ObjectMapper via un fichier de propriétés. Mais je n'ai pas trouvé qu'un attribut puisse définir Jackson ignore null value lors de la sérialisation de la chaîne Object to JSON.

spring.jackson.deserialization.*= # see Jackson's DeserializationFeature
spring.jackson.generator.*= # see Jackson's JsonGenerator.Feature
spring.jackson.mapper.*= # see Jackson's MapperFeature
spring.jackson.parser.*= # see Jackson's JsonParser.Feature
spring.jackson.serialization.*=

Je veux archiver le même code comme

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

10
2018-05-05 00:50


origine


Réponses:


C'était une amélioration pour Spring Boot 1.3.0.

Donc, malheureusement, vous devrez le configurer par programmation sur 1.2.3

@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Shop {
    //...
}

3
2018-05-05 03:33



Ajoutez la ligne suivante à votre application.properties fichier.

spring.jackson.default-property-inclusion = non_null

Pour les versions de Jackson antérieures à 2.7:

spring.jackson.serialization-inclusion = non_null


32
2018-04-21 00:41



Pour Spring Boot 1.4.x, vous pouvez inclure la ligne suivante dans votre application.properties

spring.jackson.default-property-inclusion=non_null


6
2017-11-14 17:29



C'était une bonne solution avant la déchéance: @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)

Mais maintenant, vous devriez utiliser:

@JsonInclude(JsonInclude.Include.NON_NULL) public class ClassName { ...

Vous pouvez jeter un oeil ici: https://fasterxml.github.io/jackson-annotations/javadoc/2.7/com/fasterxml/jackson/annotation/JsonInclude.Include.html


6
2018-01-10 11:16



À l'échelle de la classe,

@JsonInclude(JsonInclude.Include.NON_NULL)
public class MyModel { .... }

À l'échelle de la propriété:

public class MyModel {   
    .....

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String myProperty;

    .....
}

0
2018-03-08 18:42