json无法在java中正确传递参数,只有字符串可以正常工作
@RequestMapping(value = "/admin/pp", method = RequestMethod.GET, headers = "Accept=application/json")
@ResponseBody
public Description getDescription(@RequestBody UserStats stats){
return new Description(stats.getFirstName() + " " + stats.getLastName() + " hates wacky wabbits");
}
public class UserStats{
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
public class Description{
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Description(String desc)
{
this.description = desc;
}
}
我用postman传递Json中的值
{
"firstName":"a",
"lastName":"b"
}
结果是HTTP状态400–错误请求 所有代码都运行良好,我确信问题出在@RequestBody或我如何传递Json值 如果我尝试使用一个简单的字符串,而不是UserStats类,它工作得很好,尝试使用Long并在json中传递一个数字,它就不再工作了。这门课也是一样
我尝试使用POST方法,而不是获得相同的结果
# 1 楼答案
找到解决问题的长期价值的解决方案 https://stackoverflow.com/a/52798549/11500163
也许您正试图从Postman客户端发送一个包含JSON文本的请求,或者类似的请求:
Jackson无法反序列化它,因为它不是整数(看起来是,但不是)。来自java的整数对象。lang Integer稍微复杂一点
对于你的邮递员工作请求,只需写(不带花括号{}):