我使用Jackson进行JSON序列化,并且我希望覆盖null序列化器--具体地说,以便null值在JSON中被序列化为空字符串,而不是字符串“null”。
我找到的所有关于如何设置空序列化程序的文档和示例都引用了Jackson1.x --例如,http://wiki.fasterxml.com/JacksonHowToCustomSerializers底部的代码不再用Jackson 2.0编译,因为StdSerializerProvider不再存在于该库中。该网页描述了Jackson 2.0的模块接口,但该模块接口没有明显的方法来覆盖空序列化程序。
有人能提供一个指针,说明如何覆盖Jackson2.0中的空序列化程序吗?
2条答案
按热度按时间rsaldnfx1#
重写JsonSerializer序列化方法,如下所示。
那么您可以将
NullSerializer
设置为自定义对象Map器默认值:或者使用
@JsonSerialize
注解为某些属性指定它,例如:blmhpbnm2#
我无法得到可接受的答案来为我工作。也许是因为我的ObjectMapper在我的环境中是一个Spring Bean。
我通过使用SimpleModule进行了恢复。相同的序列化程序:
注解位于Mixin中,因为我没有修改MyClass的权限:
为了将序列化程序附加到Map器,我在Spring组件中使用了一个模块: