最近学习Spring
前端尝试ajax发送JSON格式代码
$("#btn4").click(function (){ $.ajax({ url:"/json/test5.do", type:"post", data:{"id":1,"username":"王五","birthDate":"2022-12-01"}, contentType:"application/json"})
后端用
@RequestMapping("/test5") @ResponseBody public ResultData test05(User user){ System.out.println("test5 : user -->" + user); return ResultData.ok(user); }
此种方式来接收,但是却一直报错org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'id': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'id': was expecting ('true', 'false' or 'null')
研究了很久才发现是因为虽然ajax中写了 data为JSON格式,但是其实并不是真正的发送JSON
,需要前端代码修改为
var userDate = {"id":1,"username":"王五全JSON","birthDate":"2022-12-02","score":98.5};
data:JSON.stringify(userDate)
这样即可