补充一点,可以在不需要默认序列化的字段加上如下注解:
@JsonSerialize(nullsUsing = NullSerializer.class)
如果是Long类型参数,返回到前端最后两位会变成00结尾,这时候给字段加如下注解解决:
@JsonSerialize(using = ToStringSerializer.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 #大数字自动转字符串 big-num-to-string: false
讨论(3)
-
麻烦问下要怎么改?重写一个配置貌似不行,跑的还是BladeBeanSerializerModifier里的方法
讨论(1)
-
原理就是在HttpMessageConverter中加了一个转换器并且把之前默认的删除了,你需要继承BladeBeanSerializerModifier 自己在MVC中添加一个Converter放在第一位覆盖掉默认的
讨论(1)
-
有办法全局处理没? 一个一个加很累啊,而且不小心容易漏掉
作者追问:2020-05-13 11:00
帖子里已经把逻辑所在的类贴出来了,是这个:org.springblade.core.tool.jackson.BladeBeanSerializerModifier
找到对应的序列化逻辑,改成你想要的就行
讨论(3)
-
说了这么多,最终用哪个方法解决最快最方便呢?
讨论(0)
- 热议问题
-
验证码如何限制只有数字
1
-
组态数据过滤器data显示为null
1
-
cloud项目运行启动报错
1
-
物联网平台的防注入代码在哪
1
-
漏洞:越权
2
-
升级最新版代码后,使用代码生成功能报错
1
-
broker模块如何设置用mqtt协议连接
1
-
saber3 4.6版本无法启动问题
1
-
物理模型设置参数时操作失败,如何设置监听topic?
1
-
nacos 配置两个数据源,我在项目引入最新的redis配置 但是不生效;请问什么原因;
2
扫一扫访问 Blade技术社区 移动端