如果字段的值为空,那么如何将Jackson配置为在序列化期间忽略该字段值。
例如:
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;
}
如果字段的值为空,那么如何将Jackson配置为在序列化期间忽略该字段值。
例如:
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;
}
当前回答
您可以设置application.properties:
spring.jackson.default-property-inclusion=non_null
或application.yaml:
spring:
jackson:
default-property-inclusion: non_null
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
其他回答
要使用Jackson>2.0禁止使用空值序列化财产,可以直接配置ObjectMapper,或使用@JsonInclude注释:
mapper.setSerializationInclusion(Include.NON_NULL);
or:
@JsonInclude(Include.NON_NULL)
class Foo
{
String bar;
}
或者,您可以在getter中使用@JsonInclude,这样,如果值不为空,将显示属性。
在我对如何防止Map中的空值和bean中的空字段通过Jackson序列化的回答中,提供了一个更完整的示例。
在Jackson 2.x中,使用:
@JsonInclude(JsonInclude.Include.NON_NULL)
您可以设置application.properties:
spring.jackson.default-property-inclusion=non_null
或application.yaml:
spring:
jackson:
default-property-inclusion: non_null
http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
如果在Spring Boot中,您可以直接通过属性文件自定义jackson ObjectMapper。
示例application.yml:
spring:
jackson:
default-property-inclusion: non_null # only include props if non-null
可能的值包括:
always|non_null|non_absent|non_default|non_empty
更多信息:https://docs.spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html#howto-自定义jackson对象映射器
Jackson 2.x+使用
mapper.getSerializationConfig().withSerializationInclusion(JsonInclude.Include.NON_NULL);