如何应对Spring Web Jackson中RequestBody反序列化失败的问题?

2026-05-16 02:580阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计814个文字,预计阅读时间需要4分钟。

如何应对Spring Web Jackson中RequestBody反序列化失败的问题?

最近在用Spring Web做Restful API实现时,遇到了一个问题:使用@RequestBody注解接收JSON数据时,无法被正常反序列化。服务端代码大致如下:

java@RequestMapping(value=/aqua, method=RequestMethod.POST)public Aqua crea(@RequestBody Aqua aqua) { // 处理业务逻辑}

如何应对Spring Web Jackson中RequestBody反序列化失败的问题?

最近在用Spring Web做一些Restful API的实现试验,碰到了@RequestBody 的JSON无法被正常反序列化的问题。服务端的代码大致如下:

@RequestMapping(value = "/aquas", method = RequestMethod.POST) public Aqua createAqua(@RequestBody Aqua aqua) { return aqua; }

研究后发现,由于Aqua这个实体类缺少了默认的无参构造函数(如果自行添加了有参数的构造函数,默认的无参构造函数就需要手动添加),Spring Web默认使用的JSON序列化框架-Jackson就无法正常反序列化。此时服务器会返回400 Bad Request.

解决的方法很多,比较简单直接的方法是在Aqua这个实体类里面加一个无参的构造函数。

阅读全文

本文共计814个文字,预计阅读时间需要4分钟。

如何应对Spring Web Jackson中RequestBody反序列化失败的问题?

最近在用Spring Web做Restful API实现时,遇到了一个问题:使用@RequestBody注解接收JSON数据时,无法被正常反序列化。服务端代码大致如下:

java@RequestMapping(value=/aqua, method=RequestMethod.POST)public Aqua crea(@RequestBody Aqua aqua) { // 处理业务逻辑}

如何应对Spring Web Jackson中RequestBody反序列化失败的问题?

最近在用Spring Web做一些Restful API的实现试验,碰到了@RequestBody 的JSON无法被正常反序列化的问题。服务端的代码大致如下:

@RequestMapping(value = "/aquas", method = RequestMethod.POST) public Aqua createAqua(@RequestBody Aqua aqua) { return aqua; }

研究后发现,由于Aqua这个实体类缺少了默认的无参构造函数(如果自行添加了有参数的构造函数,默认的无参构造函数就需要手动添加),Spring Web默认使用的JSON序列化框架-Jackson就无法正常反序列化。此时服务器会返回400 Bad Request.

解决的方法很多,比较简单直接的方法是在Aqua这个实体类里面加一个无参的构造函数。

阅读全文