【Json字符串转化】将数组包对象的字符串转List输出,输出到某个字段为数组包对象(61)

6 篇文章 0 订阅

直接上代码:
思路:
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"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KevinDuc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值