return时遇到com.alibaba.fastjson.JSONObject cannot be cast to com.alibaba.fastjson.JSONArray

return时遇到com.alibaba.fastjson.JSONObject cannot be cast to com.alibaba.fastjson.JSONArray

今天做项目AOP统一异常监测返回结果遇到的问题:

提前剧透下,导致异常的原因是我们的controller层返回的数据类型为JSONArray,而我们AOP切面增强方法的返回值类型是JSONObject,只需要将这两个返回值类型统一即可.

下面介绍下我锁定位置的解决异常的方法,过程值得借鉴,不感兴趣的也可以浏览,哈哈

之前都只正常的,怎末加了个异常监测就出现强转问题,研究半天也没找到哪里出现强转了,也百度了好多,都没涉及到
没办法,还得靠自己,bebug吧!

开始debug辛苦历程!!!

终于锁定抛出异常的位置:AOP切面增强return时抛出的,
解决思路:考虑是强转异常,我将所有构建数据都打印出来,看是否是json数据的问题,发现数据没问题,而且抛出的就是JSONObject强转成JSONArray出现的问题,确定json数据肯定没问题,

继续debug!!!

确定是在return的男一步出现的异常抛出,走啊走啊!终于出现异常抛出了,(平时看到很悲伤,现在看到很开心,无限个草泥马在心中奔腾而过)

在这里插入图片描述

确定问题所在,就完善吧!!!

根据业务需求,要返回JSONObject类型数据,那就将controller层也统一返回JSONObject!

具体思路

在controller层方法中自定义个JSONObject数据,将service层返回的JSONArry数据put到这个JSONObject中,以便AOP增强方法获取,
闹它!!!
将我原来的controller层的方法粘贴下,与修改后做对比

修改前:

在这里插入图片描述

修改后:

在这里插入图片描述

AOP切面增强也要进行判断,做出相应的处理:

在这里插入图片描述
如果想看同意异常处理,请移步到我的另一篇文章:
https://blog.csdn.net/weixin_45015094/article/details/105675726?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158752865919725211921537%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=158752865919725211921537&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1
喜欢的,请顶一下,关注我吆!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值