问题
后台从数据库中查询到的数据,转换成JSON字符串传到前端后,缺少部分字段。
1 |
|
1 | async showEditDialog(id) { |
思路
- 打印出后台从数据库中查询出的数据,发现字段是完整的,并无缺失。
- 打印JSON字符串,发现缺少字段,定位到问题入口。
- 查看JSON.toJSONString()方法后,并未发现异常。
- 将该模块的所有文件重新审阅一遍后发现,实体类User.java中有个布尔类型的成员变量的get方法不对头,如下:并不是我们平常的get方法:
1
2
3
4
5private boolean state; // 状态
public boolean isState() {
return state;
}这就导致JSON将User对象转换成json字符串时,无法通过反射获取到其state字段,最终给前端的json数据也就没有该字段。1
2
3public boolean getState() {
return state;
}处理
重写实体类User的get、set方法并检验,确保不再出错。重启后,测试显示正常。归纳
对于布尔类型的成员变量,在使用IDEA生成get方法后,需要进行修改。否则,将无法通过一般的反射获取其全部成员变量,项目容易出问题。