关于转换JSON列表错误导致结果出错的问题

今天修改一个问题,就是不同端封装的不同对象,请求同一个接口,同一个数据,在通用的一个逻辑转换状态中获取到不同的状态的奇葩问题。

其实本身两个接口大部分代码是相同的,是直接拷贝过去的,其实就是最后的结果对象参数稍微有点区别,大部分逻辑都是重复的,又重新抄一遍写上去,又臭又长的,但是同一份数据竟然结果不一样。我这边只能是把两个共通的逻辑抽出来,这样看出是不是逻辑那块有问题。

结果发现不对,实际状态转换的代码使用一样的,同一份数据却结果不同。

if ("finished".equals(workFlow.getProcessIsFinished())) {
            if (workFlow.isPass()) {
                workApplicationResponse.setApplicationStatus(ApplicationStatus.APPROVED.getValue());
            }else {
                workApplicationResponse.setApplicationStatus(ApplicationStatus.REJECT.getValue());
            }
        }else if ("unfinished".equals(workFlow.getProcessIsFinished())) {
            if (workFlow.getEndTime() == null) {
                workApplicationResponse.setApplicationStatus(ApplicationStatus.UNDER_REVIEW.getValue());
            }else {
                workApplicationResponse.setApplicationStatus(ApplicationStatus.REVOKE.getValue());
            }
        }

问题在哪呢,其实就是在转换获取List这个列表的时候导致的。

一个是

ist<LxzlWorkFlow> workFlowList = EntityConverter.convertList(workFlowPage.getList(), LxzlWorkFlow.class);

另一个是

 List<LxzlWorkFlow> list = workFlowPage.getList();
                String str = JSON.toJSONString(list);
                List<LxzlWorkFlow> workFlowList = JSONObject.parseArray(str, LxzlWorkFlow.class);

最后是第二份JSON序列化的endTime成功序列化出来的,另一个是直接返回null,所以说在做转换的时候导致字段“丢失”。

看了一下是别人写的内部工具类,真是“坑爹”,你做了测试吗,别这么玩?玛德今天因为其他的事,在这么一搞心态有点崩,自己发泄一下,关关难过关关过,早点开完大会,早点疫情结束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值