直接上代码:
思路:
1.获取字符传存入一个新map,map转json字符串输出;
2.json字符串转jsonObject对象;
3.从jsonObject对象中获取dateFile对象,返回值为JSONArray ;
4.循环获取jsonArray中每个数据;
5.根据创建的dateFile 对象获取每个属性的数据,set到对象dateFile 中;
6.将每个对象添加到新创建的list2中;
7.将list2数据put到最终需返回的list中;
private static List<Map<String,Object>> getListTransData(List<Map<String,Object>> list){
if(list.size() > 0){
for (int i=0;i<list.size();i++) {
// Map<String,Object> mm = new HashMap<>();
List<dateFile> list2 = new ArrayList<>();
// 创建map,用于存储需要转的字符串
Map<String,Object> map = new HashMap<>();
// [{"id":"74884995jfjfjksskoi494i949","name":"2023-04-21.png","isUpload":true},{"id":"hsdjsfhjj748479843j4erg","name":"文档.xlsx","isUpload":true}]
// 将获取到的字符串存储到map;
String dateFile = String.valueOf(list.get(i).get("dateFile"));
if(!dateFile.equals("null")){
map.put("dateFile",dateFile);
// map转json字符串;
String jsonStr = JSON.toJSONString(map);
// json字符串转jsonObject对象;
JSONObject jsonObject = JSON.parseObject(jsonStr);
// 从jsonObject对象中获取dateFile对象,返回值为JSONArray
JSONArray jsonArray = jsonObject.getJSONArray("dateFile");
if(!jsonArray.isEmpty()){ // 必须判空:非null;
if(jsonArray.size() > 0){
for (int j = 0; j < jsonArray.size(); j++) {
dateFile file = new dateFile();
// 循环获取jsonArray中每个数据
JSONObject job = jsonArray.getJSONObject(j);
// 根据file对象获取每个属性的数据,添加到对象
file.setName(String.valueOf(job.get("name")));
file.setUid(String.valueOf(job.get("id")));
file.setIsUpload(String.valueOf(job.get("isUpload")));
// 将对象添加到list2集合;
list2.add(file);
}
}
// 将封装的每个list2的集合数组添加到新map中;
// mm.put("dateFile",list2);
// 将list2数据put到最终需返回的list中;
list.get(i).put("dateFile",list2);
}
}
}
}
return list;
}
输入字符串:
[{"id":"74884995jfjfjksskoi494i949","name":"2023-04-21.png","isUpload":true},{"id":"hsdjsfhjj748479843j4erg","name":"文档.xlsx","isUpload":true}]
输出到dateFile字段:
"dateFile": [
{
"name": "2023-04-21.png.png",
"id": "74884995jfjfjksskoi494i949",
"isUpload": "true"
},
{
"name": "文档.xlsx",
"id": "hsdjsfhjj748479843j4erg",
"isUpload": "true"
}
]
最终返回的List:
"data": [
{
"address": "新建路",
"name": "zhangsan",
"age": "20",
"task": "null"
},
{
"address": "南京路",
"name": "lisi",
"age": "25",
"dateFile": [
{
"name": "2023-04-21.png.png",
"id": "74884995jfjfjksskoi494i949",
"isUpload": "true"
},
{
"name": "文档.xlsx",
"id": "hsdjsfhjj748479843j4erg",
"isUpload": "true"
}
],
"task": "null"
}
],
"code": 200,
"message": "OK"