openfeign报错json解析错误

博客内容涉及一个关于OpenFeign使用中遇到的反序列化问题,问题出现在服务间调用时的对象传递格式不匹配。作者通过设置返回参数为Object并打印输出,发现返回结果为JSONArray,从而确定问题在于返回类型错误。解决方案是将返回类型改为List,解决了反序列化异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调用openfeign接着报错com.fasterxml.jackson.databind.exc.MismatchedInputException和Cannot deserialize instance of java.lang.String[] out of START_OBJECT token

想法是openfeign在服务与服务之间的对象传递是通过json,既然报错反序列化的问题,无非就是格式问题;但是这个方法包装在openfeign当中,自己也无法通过debug查看参数,于是
将openfegin的返回参数设为Object,成功返回,并打印发现是个jsonArray格式,于是可以确定是因为返回格式的问题,应该在外套一层List,成功解决问题。
在这里插入图片描述
打印:
{[ToDoList(id=10000001, information=TEST, endTime=2021-02-08 18:43:22.0, durationTime=6763794), ToDoList(id=10000002, information=VAMPIRE, endTime=2021-02-08 16:43:22.0, durationTime=-436206)]}

原因:
在这里插入图片描述
返回类型错误
解决:
在这里插入图片描述

OpenFeign是Netflix公司开发的一款轻量级的HTTP客户端,它简化了服务之间的RESTful API调用,特别是在微服务架构中,用于处理接口间的请求和响应。如果你想使用OpenFeign发送JSON数据,你可以按照以下步骤操作: 1. **添加依赖**: 在你的Maven或Gradle项目中添加OpenFeign和Jackson(用于处理JSON)的依赖。例如,如果你使用Maven,添加到pom.xml中: ```xml <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-jackson</artifactId> <version>9.7.0</version> </dependency> ``` 2. **创建Feign接口**: 创建一个Java接口,定义你要调用的远程服务的API方法。为每个HTTP方法指定`@RequestLine`注解,加上HTTP方法和路径,以及`@Body`注解接收JSON数据。 ```java @FeignClient(name = "your-service-client", url = "http://your-service-url") public interface YourServiceApi { @RequestLine("POST /api/endpoint") @PostMapping YourResponseType sendJson(@RequestBody YourRequestType requestBody); } ``` 3. **实例化和调用**: 在你的客户端代码中,你可以使用`YourServiceApi`的实例来调用这个接口,传递JSON数据: ```java YourServiceApi yourService = YourServiceApi.create(); // 假设有一个静态工厂方法create() YourRequestType requestData = ...; // 创建你的请求对象 YourResponseType response = yourService.sendJson(requestData); ``` 4. **处理响应**: OpenFeign会自动将服务器返回的JSON转换为你定义的`YourResponseType`。如果需要,你可以在`YourResponseType`类上添加`@Data`或`@JacksonStdImpl`注解以支持JSON序列化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值