Spring Boot REST接口返回空JSON对象,debug时实体有值是什么原因?
问题根因
你遇到的接口返回空JSON结构的问题,核心原因是Employee实体类没有为私有属性提供公共的getter方法。
Spring Boot web模块默认使用Jackson作为JSON序列化框架,Jackson默认只能对类的公共字段、或者带有公共getter方法的私有字段做序列化处理。你当前代码中Employee的所有属性都是private修饰,且没有对应的get方法,Jackson无法读取到属性的值,最终就会输出空的JSON对象。
修复方案
为Employee类的所有属性添加公共的getter方法即可,修改后的代码参考如下:
@Entity @Table(name = "employee") public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Column(name = "first_name") private String firstName; @Column(name = "last_name") private String lastName; @Column private String email; // 新增getter方法 public int getId() { return id; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public String getEmail() { return email; } // 按需添加setter方法,如果涉及参数绑定等场景 public void setId(int id) { this.id = id; } public void setFirstName(String firstName) { this.firstName = firstName; } public void setLastName(String lastName) { this.lastName = lastName; } public void setEmail(String email) { this.email = email; } }
如果你的项目引入了Lombok依赖,也可以直接在Employee类上添加@Data注解,会自动生成getter、setter、toString等通用方法,无需手动编写。
内容的提问来源于stack exchange,提问作者Alex Mi
相关产品推荐
相关产品推荐

