如何通过@RequestBody传递两个对象?PUT请求JSON结构咨询
嘿,我来帮你理清这个问题!
首先看你当前的代码,returnBook方法里用的是Tuple<Long, Long>,这意味着你需要传递一个包含两个Long类型值的JSON对象,键名要和Tuple类里的字段完全对应——也就是key和value。
对应的JSON结构应该是这样的:
{ "key": 1001, "value": 2002 }
这里key对应用户ID,value对应图书实例ID,都是数字类型(注意不要加引号,否则会被解析成字符串,导致类型不匹配)。
另外你提到原本想传递一个Book对象和整数,要是你把Tuple的泛型改成Tuple<Book, Long>的话,JSON结构就要嵌套Book的完整数据了,比如:
{ "key": { "id": 1, "title": "百年孤独", "author": { "id": 1, "name": "加西亚·马尔克斯", "dateOfBirth": "1927-03-06", "bio": "魔幻现实主义文学代表人物" } }, "value": 3003 }
这里要注意几个细节:
- 字段名必须和实体类里的属性完全一致(大小写敏感,比如不能把
dateOfBirth写成dateofbirth) - Author是必填字段(你的代码里
@ManyToOne(optional = false)),所以JSON里必须完整提供Author的所有必填属性 - LocalDate类型的
dateOfBirth要使用yyyy-MM-dd格式的字符串,Spring才能正确解析
内容的提问来源于stack exchange,提问作者Pasha
相关产品推荐
相关产品推荐

