json转义问题,JAVA实体类number类型字段为null时,返回到json解析转为-1

Blade 未结 7 16530
yzw31
yzw31 剑者 2019-05-08 13:19

当JAVA实体类number类型字段为null时,返回到json解析转为-1了,是什么原因导致的呢,应该如何实现无转义,即前端和后端一致。

7条回答
  • 2019-11-27 11:03

    补充一点,可以在不需要默认序列化的字段加上如下注解:

    @JsonSerialize(nullsUsing = NullSerializer.class)

    8 讨论(0)
  • 处理逻辑在 org.springblade.core.tool.jackson.BladeBeanSerializerModifier 这个类


    因为null或者""在某些app端的http请求框架上会闪退,为了兼容多端,再加上java数组里面,未找到也是返回的-1,0在不少场景下有默认意义,所以框架默认返回了-1.


    做了null值的默认序列化,如果特殊情况不需要自带的,可以自己定义

    image.png


    BladeX最新版可以通过如下配置直接关闭

    #blade配置
    blade:
      #jackson配置
      jackson:
        #null自动转空值
        null-to-empty: false


    6 讨论(3)
  • 2020-06-12 14:02

    麻烦问下要怎么改?重写一个配置貌似不行,跑的还是BladeBeanSerializerModifier里的方法

    3 讨论(1)
  • 2021-01-18 14:53

    image.png原理就是在HttpMessageConverter中加了一个转换器并且把之前默认的删除了,你需要继承BladeBeanSerializerModifier 自己在MVC中添加一个Converter放在第一位覆盖掉默认的

    2 讨论(1)
  • 2020-05-13 02:03

    有办法全局处理没? 一个一个加很累啊,而且不小心容易漏掉

    作者追问:2020-05-13 11:00

    帖子里已经把逻辑所在的类贴出来了,是这个:org.springblade.core.tool.jackson.BladeBeanSerializerModifier

    找到对应的序列化逻辑,改成你想要的就行


    0 讨论(3)
  • 2021-07-14 09:34

    说了这么多,最终用哪个方法解决最快最方便呢?

    0 讨论(0)
提交回复