您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring MVC:不反序列化JSON请求主体

Spring MVC:不反序列化JSON请求主体

当Spring MVC找到与URL路径匹配的请求映射,但参数(或标头或其他内容)与处理程序方法期望的不匹配时,通常会看到这种类型的错误

如果使用@RequestBody批注,那么我相信Spring MVC希望将POST请求的整个主体映射到Object。我猜你的身体不仅仅是一个字符串,而是一些完整的JSON对象。

如果您期望使用JSON对象的Java模型,则可以用doSomething声明中的String参数替换String参数,例如

public void doSomething(@RequestBody MyObject myobj) {

如果您没有与JSON相匹配的Java对象,则可以尝试通过将String类型替换为a 来使其工作,Map<String, Object>并查看是否更接近可行的解决方案。

您还可以在Spring MVC中打开调试日志记录,以获取有关为何请求失败的更多信息。

考虑到注释中的要求,您可以简单地将HttpServletRequest注入到您的方法中并自己读取主体。

public void doSomething(HttpServletRequest request) {
  String jsonBody = IoUtils.toString( request.getInputStream());
  // do stuff
}
Java 2022/1/1 18:14:54 有471人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶