spring boot 项目:
public class Tag {
int id;
String name;
此处省略了get,set
}
@RestController
public class HelloController {
@RequestMapping(value = "add", consumes = "application/json; charset=utf-8")
public String add(@RequestBody List param) {
System.out.println("param:" + param);
return "成功";
}
}
commit(){
$.ajax({
type:"post",
url: 'add',
contentType:"application/json; charset=utf-8",
dataType:"json",
data:{
param:JSON.stringify([{id:1,name:'hello'},{id:2,name:'hello'}])
},
success:function(data){
console.log(data);
}
})
}
后台报错信息:
2018-01-29 13:52:57.856 WARN 3148 --- [nio-8088-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'param': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'param': was expecting ('true', 'false' or 'null')
本文讨论了一个SpringBoot项目中遇到的问题,即在控制器中尝试接收JSON参数时出现HttpMessageNotReadableException。错误信息表明服务器未能正确解析请求中的'param'字段。问题可能出在前端Ajax请求的数据格式化或者后端接收参数的方法上。解决方法可能包括检查前端JSON.stringify的使用,确保数据格式正确,以及后端控制器方法的参数类型匹配。同时,确保使用的Content-Type正确设置为'application/json;charset=utf-8'。

被折叠的 条评论
为什么被折叠?



