Spring MVC 接收的 JSON 嵌套对象的 Spring Boot JACKSON 配置
Posted
技术标签:
【中文标题】Spring MVC 接收的 JSON 嵌套对象的 Spring Boot JACKSON 配置【英文标题】:SpringBoot JACKSON configuration for JSON nested objects received by Spring MVC 【发布时间】:2016-03-01 16:23:02 【问题描述】:我已经创建了 Spring Boot 应用程序,在这个应用程序中我有
@RestController
public class OfferController
@RequestMapping(value = "/saveOffer", method = RequestMethod.POST)
public void saveOffer(@RequestBody Offer offer)
//...
Offer 类包含 Address 类型的嵌套属性
public class Offer
private String title;
private Address address;
//... getters setters etc
当我从 UI 发送 JSON
时
"offer":
"title":"TheBestOffer",
"address":
"city": "Warsaw"
我的 REST 控制器收到 Offer,Address 属性为空,但 title
属性包含值 "TheBestOffer"
(发送时)。
我假设 JACKSON 随 Spring Boot 一起交付需要对嵌套对象进行一些额外配置?我试过这样做,但没有用:/
【问题讨论】:
【参考方案1】:Spring 会自动执行此操作,我认为您的问题在于 json。
您需要删除优惠标签。
"title":"TheBestOffer",
"address":
"city": "Warsaw"
【讨论】:
但是为什么它会填充 title 属性呢? 我不确定为什么要设置 title 属性(我做了一些测试并没有设置值),但这是发送请求正文的正确方法。以上是关于Spring MVC 接收的 JSON 嵌套对象的 Spring Boot JACKSON 配置的主要内容,如果未能解决你的问题,请参考以下文章
spring mvc接收ajax提交的JSON数据,并反序列化为对象
在spring mvc控制器接收json并反序列化为对象列表