我是靠谱客的博主 寒冷金针菇,最近开发中收集的这篇文章主要介绍关于转换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,所以说在做转换的时候导致字段“丢失”。

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

最后

以上就是寒冷金针菇为你收集整理的关于转换JSON列表错误导致结果出错的问题的全部内容,希望文章能够帮你解决关于转换JSON列表错误导致结果出错的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部