500字范文,内容丰富有趣,生活中的好帮手!
500字范文 > 关于转换JSON列表错误导致结果出错的问题

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

时间:2021-03-05 03:37:04

相关推荐

关于转换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,所以说在做转换的时候导致字段“丢失”。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。