补充一点,可以在不需要默认序列化的字段加上如下注解:
@JsonSerialize(nullsUsing = NullSerializer.class)
处理逻辑在 org.springblade.core.tool.jackson.BladeBeanSerializerModifier 这个类
因为null或者""在某些app端的http请求框架上会闪退,为了兼容多端,再加上java数组里面,未找到也是返回的-1,0在不少场景下有默认意义,所以框架默认返回了-1.
做了null值的默认序列化,如果特殊情况不需要自带的,可以自己定义
BladeX最新版可以通过如下配置直接关闭
#blade配置
blade:
#jackson配置
jackson:
#null自动转空值
null-to-empty: false
麻烦问下要怎么改?重写一个配置貌似不行,跑的还是BladeBeanSerializerModifier里的方法
原理就是在HttpMessageConverter中加了一个转换器并且把之前默认的删除了,你需要继承BladeBeanSerializerModifier 自己在MVC中添加一个Converter放在第一位覆盖掉默认的
有办法全局处理没? 一个一个加很累啊,而且不小心容易漏掉
帖子里已经把逻辑所在的类贴出来了,是这个:org.springblade.core.tool.jackson.BladeBeanSerializerModifier
找到对应的序列化逻辑,改成你想要的就行
说了这么多,最终用哪个方法解决最快最方便呢?
扫一扫访问 Blade技术社区 移动端