关于java:后端如何将数据转化为json字符串传输

前言

在写后端的c层返回字段断言的时候,进行对于user对象的isAdmin字段断言。相干实体类字段如下

 /**
 * 是否是超级管理员
 */
private Boolean isAdmin = false;


 public Boolean getAdmin() {
    return isAdmin;
}

public void setAdmin(Boolean admin) {
    isAdmin = admin;
}

当我断言时,我断言isAdmin字段存在

然而他报错说不存在$.isAdmin。

后端变json字符串原理


解决办法是打印一下相干数据,看见返回值为“admin”: true,咱们将isAdmin改成admin,运行通过。然而为什么是admin而不是isAdmin呢?在我过来的认知里,json字符串的键值始终跟对象的属性名称雷同,然而这里却呈现了不一样。看来我的了解错了。
询问老师后得悉,对象转变成json字符串的键值是依据属性对应的get办法生成的。
比方咱们在这里的isAdmin对应的get办法

public Boolean getAdmin() {
    return isAdmin;
}

具体变动为失去相应的get办法的办法名,像下面的就是getAdmin。而后去掉get,再将首字母变为小写。这就是为什么是键值是admin而不是isAdmin了。

咱们将get办法名改为getIsAdmin,此时咱们就应该断言isAdmin字段存在了。

实体类的get、set办法

为什么isAdmin字段要写成getAdmin办法名而不是getIsAdmin办法名。
当咱们写实体类时,IDEA能够帮忙咱们主动生成getter/setter办法。
鼠标右键->Generate->Getter and Setter,而后选取想要生成的对应属性即可。

咱们发现一个问题,咱们写一个Boolean类型的admin属性与Boolean类型的isAdmin属性生成的是雷同办法名称的getter/setter办法。也就是
getAdmin办法名。
究其原因。看网上有说阿里是禁止Boolean类型的字段已is打头的,也有人说不举荐这种写法。具体能够看这篇文章:阿里标准:为什么boolean类型变量命名禁用is结尾

总结

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据