我是靠谱客的博主 寒冷金针菇,这篇文章主要介绍关于转换JSON列表错误导致结果出错的问题,现在分享给大家,希望可以做个参考。

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

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

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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这个列表的时候导致的。

一个是

复制代码
1
2
ist<LxzlWorkFlow> workFlowList = EntityConverter.convertList(workFlowPage.getList(), LxzlWorkFlow.class);

另一个是

复制代码
1
2
3
4
List<LxzlWorkFlow> list = workFlowPage.getList(); String str = JSON.toJSONString(list); List<LxzlWorkFlow> workFlowList = JSONObject.parseArray(str, LxzlWorkFlow.class);

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

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

最后

以上就是寒冷金针菇最近收集整理的关于关于转换JSON列表错误导致结果出错的问题的全部内容,更多相关关于转换JSON列表错误导致结果出错内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部