Stackoverflow(1)-根据RequestBody的内容来区分使用哪个资源

  • 如果使用Spring,可以通过@RequestBody将请求体的json转换为Java对象,但如果URI相同,而请求体的内容不同,应该怎么办?
  • 问题来源(stackoverflow):
  • Spring @RequestBody without using a pojo?
  • 稍微研究了一下,如果将@RequestBody指定为Map,那么请求体(键、值)会存储到Map对象中
  • 案例:
  • 发送POST请求,虽然URI相同,但是请求体却不同
  • 不过,携带了一个名为type的共同数据,并通过type的值来判别不同的情况
  • 这次准备了两个type的值:concert和trip

  • 控制器的实现:
  • 在控制器的实现中,指定 @RequestBody 为 Map<String, Object> 类型
  • 通过指定 Map,可以将请求体以键值对的形式存储

  • 查看 type 键的值,以此判断是哪一种类型的请求,并将请求转换为相应的类
  • 在转换过程中使用了 Jackson 的 ObjectMapper 类进行转换
  • 这里,我们将其转换为相应类的对象,输出到标准输出并结束

  • 尝试发送 concert 的请求

  • 结果的标准输出

  • 尝试发送 trip 的请求

  • 结果的标准输出

  • 所以正确地将其转换为对应的类是可能的
  • 整体代码:

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-19 03:16:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-19 03:16:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-19 03:16:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-19 03:16:01       20 阅读

热门阅读

  1. python中怎么画对数坐标图

    2024-02-19 03:16:01       30 阅读
  2. openJudge | 中位数 C语言

    2024-02-19 03:16:01       33 阅读
  3. yolov8目标检测-onnx模型推理

    2024-02-19 03:16:01       25 阅读
  4. 什么是云渲染?云渲染的优势有哪些?

    2024-02-19 03:16:01       39 阅读
  5. C#面:简述装箱和拆箱

    2024-02-19 03:16:01       32 阅读