openapi新增人员踩坑系列二:LinkedHashMap不能转换为List原创
金蝶云社区-JeremyG
JeremyG
24人赞赏了该文章 2,094次浏览 未经作者许可,禁止转载编辑于2020年12月07日 21:08:00

近日做openapi(开放平台)的新增人员的案例,发现按照自己想的格式去写参数,问题还是挺多的,特此记录下每一步遇到的问题及解决方案。


本次问题:java.util.LinkedHashMap cannot be cast to java.util.List


案例如图:

image.png


解决过程:

还是打断点跟源码!(不知道怎么找源码的,可以参考帖子:苍穹如何根据url定位到映射的类,如何根据url追溯源码?)看报错是类型转换错误,也不知道那个转换异常,看不出来就怼源码!接着上期的断点继续往下走,发现走到这里报错

image.png

然后你一路往下跟源码

#&*……#¥*……¥**()#&(*¥…*#%*…¥*&*()¥*))*)¥()&*¥…

中途历经千辛万苦,终于找到报错的地方。(要是阅读源码有难度或者比较懒的同志,可以直接看报错堆栈定位

最终会发现报错在这里,这里把取到的value转换成List<Map>这种格式,然后你再往调用上游看看,分析上下文,你能发现,这里value是单据体的值,key-value格式的,但是源码还多了一个list,仔细一想,单据体是多条,那还不是list格式吗?于是问题找到,参数构造有误,改成数组结构即可

image.png


这里改成数组格式的,本次题目这个问题就解决了,但是,下图不是最终的可以执行的参数格式,踩坑还在继续中,不要抄下下图的入参!!!

image.png



最终可以执行的参数格式是什么样子的呢,请看后期!

赞 24