springmvc数据传回前段时is开头的字段被去掉了is的问题
·
背景
在写代码的时候发现了一个很无语的bug,我的Vo类定义

controller层

后端生成的数据

正常而言前端接收到的json数组中应该有 mean 属性和isRight属性,但是我发现前端实际接收到的为

我的isright变成了right,这可真是令人蛋疼,后来经过百度发现
lombok在生成getset方法的时候会对于Bool类型的变量会生成is****的方法,而现在变量名就为is***,因此生成的json的属性就是***而不是is***

解决方法
-
在get方法上面加入@JsonProperty(value = “isHot”)注解
-
手动修改 get/set 方法名为getIsHot/setIsHot
但是上面两种都不推荐
这种方式在某些时候是可以正常运行的,但是在一些rpc框架里面,当反向解析读取到isSuccess()方法的时候,rpc框架会“以为”其对应的属性值是success,而实际上其对应的属性值是isSuccess,导致属性值获取不到,从而抛出异常。
同时在阿里巴巴java开发手册中就明确禁止了这种变量命名方法

所以,修改变量名使其符合规范才是上策
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)