首页 文章

Spring Boot Rest Controller API不返回json

提问于
浏览
2

我正在构建一个CRUD Spring Boot应用程序 . 以下是Rest Controller的代码片段

@RestController
@RequestMapping("/api")
public class UserController {

    @Autowired
    private  UserRepository userRepository;


    @GetMapping("/users")
    public List<User> getUsers() {
        List<User> allUsers = userRepository.findAll();
        return allUsers;
    }
}

当我打电话给“/ api / users”时,我收到以下回复:

[
{ },
{ },
]

用户类:

package entities;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity
@Table(name = "appuser")
public class User {

    @Id
    @GeneratedValue
    private Long id;
    private String fname;
    private String lname;


    public User(String fname, String lname) {

        this.fname = fname;
        this.lname = lname;
    }


    public User() {

    }


    @Override
    public String toString() {
        return "User [id=" + id + ", fname=" + fname + ", lname=" + lname + "]";
    }
}

我希望以json形式回复 . 我该如何解决?

1 回答

  • 5

    如果我没记错的话Spring Boot默认使用Jackson,默认情况下Jackson在序列化过程中使用getter,所以你需要为你想要出现在JSON中的字段添加getter .

    或者,您可以将此注释添加到您的类:

    @JsonAutoDetect(fieldVisibility = Visibility.ANY)
    

    在JSON中使用所有字段,无论可见性如何

相关问题