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

server/2025/2/9 6:49:55/

在使用 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.ppmy.cn/server/166149.html

相关文章

move_base全局路径规划震荡之参数调优

在使用 move_base 进行导航时&#xff0c;如果全局路径规划在遇到障碍物时频繁在障碍物左右两侧跳变&#xff0c;导致机器人绕障失败&#xff0c;通常可以通过调整参数优化来解决。以下是具体原因分析和解决方案&#xff1a; 问题原因分析&#xff1a; 全局路径规划的震荡&…

Redis存储⑤Redis五大数据类型之 List 和 Set。

目录 1. List 列表 1.1 List 列表常见命令 1.2 阻塞版本命令 1.3 List命令总结和内部编码 1.4 List典型使用场景 1.4.1 消息队列 1.4.2 分频道的消息队列 1.4.3 微博 Timeline 2. Set 集合 2.1 Set 集合常见命令 2.2 Set 集合间命令 2.3 Set命令小结和内部编码 2.…

3.攻防世界 weak_auth

题目描述提示 是一个登录界面&#xff0c;需要密码登录 进入题目页面如下 弱口令密码爆破 用1 or 1 #试试 提示用admin登录 则尝试 用户名admin密码&#xff1a;123456 直接得到flag 常用弱口令密码&#xff08;可复制&#xff09; 用户名 admin admin-- admin or -- admin…

Spark SQL读写Hive Table部署

个人博客地址&#xff1a;Spark SQL读写Hive Table部署 | 一张假钞的真实世界 官网参考文档&#xff1a;Hive Tables。 本文使用的组件版本如下&#xff1a; Spark 3.1.2Hive 3.1.2 第一步&#xff1a;Hive部署 在所有Worker节点上部署Hive。主要是使用Hive下面的libs。 …

springcloud gateway 负载均衡

Spring Cloud Gateway的负载均衡是Spring Cloud生态系统中一个非常重要的功能&#xff0c;它使得微服务架构中的服务调用能够更加高效和均衡。以下是关于Spring Cloud Gateway负载均衡的详细解析&#xff1a; 一、Spring Cloud Gateway简介 Spring Cloud Gateway是一个基于Sp…

cursor指令工具

Cursor 工具使用指南与实例 工具概览 Cursor 提供了一系列强大的工具来帮助开发者提高工作效率。本指南将通过具体实例来展示这些工具的使用方法。 1. 目录文件操作 1.1 查看目录内容 (list_dir) 使用 list_dir 命令可以查看指定目录下的文件结构: 示例: list_dir log…

ElasticSearch业务场景与面试题

以下是几个常见的 Elasticsearch 业务场景解决方案及面试题解析&#xff08;含 Java 示例&#xff09;&#xff1a; 一、业务场景解决方案 场景 1&#xff1a;商品搜索与过滤 需求&#xff1a;电商平台需要支持多条件搜索&#xff08;关键词、价格区间、分类、品牌&#xff09…

P1049 装箱问题(dp)

#include<bits/stdc.h> using namespace std;int main() {int v,n;cin>>v>>n;int a[30];int dp[20005];for(int i0;i<n;i){cin>>a[i];}memset(dp,0,sizeof(dp));// 设置所有元素为0&#xff0c;表示最大体积为0for(int i0;i<n;i){for(int jv;j&…