Fegin调用时出现JSON parse error:can not deserialize instance of ...

2024-03-19 18:38

本文主要是介绍Fegin调用时出现JSON parse error:can not deserialize instance of ...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、问题

接口调用时提示json解析报错,如图
在这里插入图片描述

二、解决

通过排查发现Fegin调用时出现问题,Fegin调用的代码时这样写的:

employeeFeignClient.addRole(iamOrganizationId,employeeId,roleIds);

Fegin类是这样写的:

@PutMapping("/v1/{iam_organization_id}/organizations/employee/{employee_id}/role")
ResponseEntity<Integer> addRole(@PathVariable("iam_organization_id") Long iamOrganizationId,@PathVariable("employee_id") Long employeeId,@RequestBody List<Long> roleList) ;

json报错那可能在 @RequestBody这个参数这里出现问题,对比了调用服务的接口如下:

@Permission(level = ResourceLevel.ORGANIZATION)
@PutMapping("/{employee_id}/role")
@ApiOperation(value = "员工批量添加/修改角色")
public ResponseEntity<Integer> addRole(@PathVariable("iam_organization_id") Long iamOrganizationId,@PathVariable("employee_id") Long employeeId,@RequestBody List<Long> roleList) {return Optional.ofNullable(employeeService.addRole(iamOrganizationId, employeeId, roleList)).map(flag -> new ResponseEntity<>(flag, HttpStatus.OK)).orElseThrow(() -> new CommonException(ResponseCode.ERROR_ADD.getDesc()));
}

仔细检查后Fegin类是没问题的,问题出在在fegin调用的时候requestBody参数名字不一样。Fegin类的参数名为roleList,接口调用时候参数名为roleIds,导致报错。将方法里参数名改为跟Fegin类的参数名一样后解决了此问题。

三、结论

Fegin调用时出现JSON报错时,检查Fegin类里与接口调用里的@requestBody参数对应的名字是否一致。

这篇关于Fegin调用时出现JSON parse error:can not deserialize instance of ...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/826917

相关文章

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec