1、问题描述
今天写代码发现别人现成的方法返回的是user对象,但是我需要是userVo对象,这就需要将list里面的对象转换,不做任何改变,对别人代码没有影响,有方法,特此记录方便使用。
2、上代码
//答复通知书
if (StringUtils.isNotEmpty(a.getEvidenceId())) {
List<Evidence> evidenceList = evidenceMapper.selectByIdList(Arrays.asList(a.getEvidenceId().split(CommonConstants.SPLIT_COMMON)));
if (CollectionUtils.isNotEmpty(evidenceList)) {
List<EvidenceVo> evidenceVoList = JSONObject.parseArray(JSONObject.toJSONString(evidenceList), EvidenceVo.class);
evidenceVoList.forEach(evidenceVo -> evidenceVo.setEvidencePath(fdfsUtil.getDownLoadUrl() + evidenceVo.getEvidencePath()));
noticeReplyVo.setEvidenceList(evidenceVoList);
}
}
//其他附件材料
if (StringUtils.isNotEmpty(a.getOtherEvidenceId())) {
List<Evidence> evidenceList = evidenceMapper.selectByIdList(Arrays.asList(a.getOtherEvidenceId().split(CommonConstants.SPLIT_COMMON)));
if (CollectionUtils.isNotEmpty(evidenceList)) {
List<EvidenceVo> evidenceVoList = JSONObject.parseArray(JSONObject.toJSONString(evidenceList), EvidenceVo.class);
evidenceVoList.forEach(evidenceVo -> evidenceVo.setEvidencePath(fdfsUtil.getDownLoadUrl() + evidenceVo.getEvidencePath()));
noticeReplyVo.setOtherEvidenceList(evidenceVoList);
}
}
把数据转为json格式就可以进行各种转换:
1、对象转换
JSONObject messageJo = messageList.getJSONObject(i);
Message message = JSON.toJavaObject(messageJo, Message.class);
2、集合转换
List<EvidenceVo> evidenceVoList = JSONObject.parseArray(JSONObject.toJSONString(evidenceList), EvidenceVo.class);
这篇博客介绍了在代码中如何将对象列表转换为另一种自定义类型的列表,同时保持原有数据不变且不影响其他代码。通过将对象转为JSON字符串,然后解析成目标类型,实现了对象之间的类型转换。具体步骤包括:首先判断证据ID是否为空,然后查询证据列表,接着将证据对象列表转换为EvidenceVo对象列表,并设置证据路径。同样方法处理其他附件材料。此外,还展示了如何将单个对象转换为指定类的实例。

被折叠的 条评论
为什么被折叠?



