我在春季有一个全局对象映射器,其属性设置如下:
getObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
这正常工作,并且在序列化时排除了所有空值。
但是我有一个针对类的自定义序列化程序,该类具有私有Map<String, Object> data = new LinkedHashMap<>()
作为成员变量。该映射的键具有空值,我想将其包含在输出中。类级别或成员级别@JsonInclude不起作用。尝试覆盖isEmpty并始终返回false,但这没有用。
在杰克逊2.5之前会自动包含NULL映射值,但这在升级到2.9+之后开始发生。任何帮助将不胜感激。
答案 0 :(得分:0)
基本上,您正在寻找的是仅针对一个类的自定义序列化程序,对吗? 您可以找到如何实现here
然后您可以将序列化程序注册到您的类中
@JsonSerialize(using = CustomSerializer.class)
class YourClass{
这会将自定义序列化程序注册到您感兴趣的类中,这样您也可以添加空值。