后台返回前端 is....开头字段被屏蔽

后台返回前端 is....开头字段被屏蔽 (Java)
背景 :

与往常一样前端联调接口 , 收到前端同事的反馈说 : 两个相同的接口返回的某个字段却不一样.

实体类 :
public class Test{
	private Boolean isEnable;
}

==============================
前端接收到的数据 : 
{
	"enable":true
}

问题 : 前端收到的字段名与定义的不一致 ! ! ! 很是蹊跷检查完代码无错误后 , 脑海里想起<阿里巴巴开发手册>里的一句话 , 明确禁止了这种已is开头定义布尔类型的变量命名方法 :

【强制】POJO 类中布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误。
反例: 定义为基本数据类型Boolean isDeleted;的属性,它的方法也是isDeleted(), RPC框架在反向解析的时候,“以为”对应的属性名称是deleted,导致属性获取不到,进而抛出异常.

所以规范变量名是最佳推荐的.当然还有下面几种方式能够比较方便的解决这个问题.

1.增加序列化注解.

@JsonProperty(value = “isEnable”)
pirvate Boolean isEnable;

2.修改实体字段对应的get/set 方法为is开头的.


OVER See You Later !

你可能感兴趣的:(Java,SpringBoot,java开发手册,前端,java,开发语言)