在自定义JsonSerializer中允许NULL映射值

时间:2018-09-11 09:43:34

标签: spring jackson2 jackson-databind

我在春季有一个全局对象映射器,其属性设置如下:

getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_EMPTY);

这正常工作,并且在序列化时排除了所有空值。

但是我有一个针对类的自定义序列化程序,该类具有私有Map<String, Object> data = new LinkedHashMap<>()作为成员变量。该映射的键具有空值,我想将其包含在输出中。类级别或成员级别@JsonInclude不起作用。尝试覆盖isEmpty并始终返回false,但这没有用。

在杰克逊2.5之前会自动包含NULL映射值,但这在升级到2.9+之后开始发生。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

基本上,您正在寻找的是仅针对一个类的自定义序列化程序,对吗? 您可以找到如何实现here

然后您可以将序列化程序注册到您的类中

@JsonSerialize(using = CustomSerializer.class)
class YourClass{

这会将自定义序列化程序注册到您感兴趣的类中,这样您也可以添加空值。