[alibaba/fastjson]FastJsonConfig设置全局WriteNullNumberAsZero特性,如何让部分实体序列化时忽略这个特性

2025-10-28 773 views
2

Web应用中通过FastJsonConfig的setSerializerFeatures()方法设置了全局的WriteNullNumberAsZero特性,如何针对某个实体忽略这个特性,null数值字段不自动替换为0

回答

7

要想实现你这个功能,要在全局序列化设置里面丢掉这个属性,转而去每个实体类里面用@JSONField去需要的实体类里面加这个属性,就是不知道配置全局后这个注解会不会失效,你可以试下,如果失效,那你只能在全局设置里面踢掉整个序列化的设置,分开用注解一个个设置

0

要想实现你这个功能,要在全局序列化设置里面丢掉这个属性,转而去每个实体类里面用@JSONField去需要的实体类里面加这个属性,就是不知道配置全局后这个注解会不会失效,你可以试下,如果失效,那你只能在全局设置里面踢掉整个序列化的设置,分开用注解一个个设置

这样做风险太大 整个项目都要改动

2

要是能有个注解 能够覆盖全局配置就好了

9

要是能有个注解 能够覆盖全局配置就好了

你可以去提个issus,看看作者能不能实现。或者问问作者有没有什么好的解决办法

7

@rongbo-j please refer to: com.alibaba.fastjson.serializer.ObjectSerializer

3

@rongbo-j please refer to: com.alibaba.fastjson.serializer.ObjectSerializer

非常感谢,自定义ObjectSerializer可以解决

2

请问这个问题如何解决的,我使用ObjectSerializer 给属性加了注解, 但是测试发现:如果属性是null,ObjectSerializer 不会生效!只有num有值时才生效,如何解决?谢谢! @JSONField(serializeUsing = NullNumberAsNullSerialize.class) private Integer num;

5

实体增加注解: @JSONField(serialzeFeatures = SerializerFeature.WriteMapNullValue)