Spring, Angular.js 400 错误请求

Spring, Angular.js 400 Bad Request

我很难弄清楚为什么这个请求会遇到 400 BAD 请求:

{
email: "ccc@gmail.com"
lastfmUsername: "bluecun"
password: "a$if246VMeosRCNJibodEhueXGyQNiAHeJd3KVHi7WedjByECYeXO5."
username: "bluecun"
}

这是我的模型和控制器代码:

public class User {
    private Long id;
    private String username;
    private String lastfmUsername;
    private String email;
    private String password;
...
}

@RequestMapping(value = "/register", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE,
            produces = MediaType.APPLICATION_JSON_VALUE)
    public
    @ResponseBody
    void register(@RequestBody User user) throws Exception {
        semanticGraphDao.saveUser(user);
    }

感谢您的回答。

首先你需要检查你的 JSON 是否格式正确,这意味着:属性用引号括起来,每个 属性 之间有一个冒号,例如:

{
  "email": "ccc@gmail.com",
  "lastfmUsername": "bluecun",
  "password": "a$if246VMeosRCNJibodEhueXGyQNiAHeJd3KVHi7WedjByECYeXO5.",
  "username": "bluecun"
}

最重要的是,检查用户 class 的构造函数。它必须有一个默认构造函数:

public class User {
    private Long id;
    private String username;
    private String lastfmUsername;
    private String email;
    private String password;

    public User() {
      
    }
    
    // Getters and Setters
}

最后,检查 Spring 引导日志 - 可能显示 Jackson 的某种异常,这将指导您如何解决映射问题。