当前位置: 首页 > article >正文

OpenFeign远程调用返回的是List<T>类型的数据

在使用 OpenFeign 进行远程调用时,如果接口返回的是 List 类型的数据,可以通过以下方式处理:

直接定义返回类型为List

Feign 默认支持 JSON 序列化/反序列化,如果服务端返回的是 List的JSON格式数据,可以直接在 Feign 接口中定义返回类型为 List。

@FeignClient(name = "item-service")
public interface ItemClient {
    @GetMapping("/items")
    List<Item> getItems();
}

使用ResponseResult包装返回类型

@FeignClient(name = "item-service")
public interface ItemClient {
    @GetMapping("/items")
    ResponseResult<List<Item>> getItems();
}

使用 ResponseResult包装返回类型时,调用 Feign 客户端获取数据时,需要先将data转成JSON字符串,再将JSON字符串解析为List<Item>

ResponseResult responseResult = itemClient.getItems();
String itemsJson = JSON.toJSONString(responseResult.getData());
List<Item> items = JSON.parseArray(itemsJson, Item.class);

直接强制转换List<Map<String, Object>>List<WmChannel>是不安全的,因为Java的泛型在运行时会被擦除,编译器无法检查具体的类型是否匹配。而JSON会根据目标类的定义,逐个字段地将数据映射到对象中,从而确保类型安全。
List<WmChannel> wmChannels = (List<WmChannel>)responseResult.getData();在这里插入图片描述


http://www.kler.cn/a/537353.html

相关文章:

  • PHP PDO 教程
  • UnityShader学习笔记——动态效果
  • VsCode创建VUE项目
  • react-native-swiper active dot无法更新解决方案
  • 【蓝桥杯—单片机】第十届省赛真题代码题解题笔记 | 省赛 | 真题 | 代码题 | 刷题 | 笔记
  • 生产环境超实用shell脚本一
  • git怎么查看提交的历史
  • 论文翻译学习:《DeepSeek-R1: 通过强化学习激励大型语言模型的推理能力》
  • 关于ESP-IDF 5.4 中添加第三方组件esp32-camera找不到文件,编译错误解决办法(花了一天时间解决)
  • zzcms index.php存在SQL注入漏洞
  • 华为支付-免密支付接入签约代扣场景开发步骤
  • 【Flink快速入门-1.Flink 简介与环境配置】
  • 深入学习索引
  • Python爬虫--requests库
  • Docker 和 Docker Compose
  • 青龙面板部署定时脚本自动化运行
  • STM32 I2C外设
  • 自定义v-model修饰符
  • 【理论知识】 2D 卷积、3D 卷积与 3D 池化
  • matlab simulink 四分之一模型车+人体和座椅
  • 消息队列高手课总结笔记——基础篇速通
  • 初始JavaEE篇 —— Spring Web MVC入门(下)
  • 详解SQLAlchemy的函数relationship
  • .net的一些知识点6
  • 【ESP32cam人脸识别开门及服务器端实战源码】
  • 回退 android studio emulator 的版本