Stackoverflow(1)-根据RequestBody的内容来区分使用哪个资源
- 开发
- 34
-
- 如果使用Spring,可以通过@RequestBody将请求体的json转换为Java对象,但如果URI相同,而请求体的内容不同,应该怎么办?
- 问题来源(stackoverflow):
- Spring @RequestBody without using a pojo?
- 稍微研究了一下,如果将@RequestBody指定为Map,那么请求体(键、值)会存储到Map对象中
- 案例:
- 发送POST请求,虽然URI相同,但是请求体却不同
- 不过,携带了一个名为type的共同数据,并通过type的值来判别不同的情况
- 这次准备了两个type的值:concert和trip
![](https://img-blog.csdnimg.cn/direct/7e69c4630e9f42628373f939fc98b5b0.png)
![](https://img-blog.csdnimg.cn/direct/b2eb6316d6c84c3db21ad93ceec4512e.png)
- 控制器的实现:
- 在控制器的实现中,指定 @RequestBody 为 Map<String, Object> 类型
- 通过指定 Map,可以将请求体以键值对的形式存储
![](https://img-blog.csdnimg.cn/direct/007fb6b5fa1444239a149bb934415ca4.png)
- 查看 type 键的值,以此判断是哪一种类型的请求,并将请求转换为相应的类
- 在转换过程中使用了 Jackson 的 ObjectMapper 类进行转换
- 这里,我们将其转换为相应类的对象,输出到标准输出并结束
![](https://img-blog.csdnimg.cn/direct/2fe0623c3ce547d6a074d9c18df4a2aa.png)
![](https://img-blog.csdnimg.cn/direct/9adc3cb68204476e8532e604e605e60a.png)
![](https://img-blog.csdnimg.cn/direct/cceb8cbbf28a414d98ea9c64bf361c96.png)
![](https://img-blog.csdnimg.cn/direct/25fb513818934b7ebee790d5409d98b9.png)
![](https://img-blog.csdnimg.cn/direct/2040a5fe391e442caecf55c9e97e228b.png)
原文地址:https://blog.csdn.net/weixin_59624686/article/details/136157652
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:https://www.suanlizi.com/kf/1759295721359675392.html
如若内容造成侵权/违法违规/事实不符,请联系《酸梨子》网邮箱:1419361763@qq.com进行投诉反馈,一经查实,立即删除!