欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > OpenFeign远程调用返回的是List<T>类型的数据

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

2025/2/8 22:11:51 来源:https://blog.csdn.net/qq_57882997/article/details/145493298  浏览:    关键词: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();在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com