春季启动,杰克逊在序列化中将空字符串转换为NULL

时间:2019-12-26 16:42:20

标签: java spring-boot jackson

我有一个要求,在进行序列化时,我应该能够将Empty字符串(即“”)中的所有属性转换为NULL,我在Spring Boot中使用Jackson,请问如何实现这一目标? >

1 个答案:

答案 0 :(得分:1)

是的,这非常简单:对于可以为空且必须为null的字段使用自己的序列化器:

class TestEntity {

    @JsonProperty(value = "test-field")
    @JsonSerialize(usung = ForceNullStringSerializer.class)
    private String testField;
}

class ForceNullStringSerializer extends JsonSerializer<String> {

    @Override
    public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        if (value == null || value.equals("")) {
            gen.writeNull();
        } else {
            gen.writeString(value);
        }
    }
}

此序列化程序可应用于需要返回null的所有字段。

相关问题