用JSONArray为核心,重组json对象,进行嵌套拼接

这里主要是从数据库取出了jsonArray,而我们用一个新的JSONArray——new_JSONArray,来进行重新拼接,按照某个key中的value值判断,如果相同,则在相同位置的另一个key下方添加数据

if (jsonArray.size() > 0) {
              for (int i = 0; i < jsonArray.size(); i++) { // 开始循环json对象
                  JSONObject job = jsonArray.getJSONObject(i); // 逐个取出
                  System.out.println("job:" + job);
                  String create_time = String.valueOf(job.get("create_time")); // 将create_time取出
                  // 将图片路径取出并转为base64编码,将其拼成一个jsonObject
                  String imgFile = String.valueOf(job.get("image"));
                  System.out.println("new_jsonArray的长度:" + new_jsonArray.size());
                  // String image_base64=new DataProcessing().ImageToBase64ByLocal(imgFile);
                  // job.put("image", image_base64);
                  // 在外部新建了个new_jsonArray,接下来将数据库得到的图片文件逐个进行重组拼接。
                  if (new_jsonArray.size() > 0) {
                       boolean addNew=true; //用来标记,循环结束后,有没有相同的create-time
                       for (int j = 0; j < new_jsonArray.size(); j++) {
                            JSONObject job_new = new_jsonArray.getJSONObject(j); // 逐个取出
                            System.out.println("job_new:" + job_new);
                            String job_new_createTime=String.valueOf(job_new.get("create_time"));
                            System.out.println("create_time:" +job_new_createTime+"  create_time2:"+create_time);
                            if (job_new_createTime.equals(create_time)){
                                // 如果有这个create_time,则将base64的json取出,然后将这张图片的base64拼接进去,再put拼好的temporary_jsonArray,并把标记变为false                           
                                JSONArray temporary_jsonArray = JSONArray.fromObject(job_new.get("image"));
                                temporary_jsonArray.add(imgFile);
                                System.out.println("存在相同的time:"+temporary_jsonArray);
                                job_new.put("image", temporary_jsonArray);
                                addNew=false; 
                                break;
                            }
                       }
                       if(addNew) {
                            //循环结束,判断这个标记,为true则表示没有相同的create_time,此时则新建一个,用JSONArray拼接image,用一个JSONObject将image和creat_time装进去,然后再add他们
                            JSONArray new_jsonArray3 = new JSONArray();
                            new_jsonArray3.add(imgFile);
                            JSONObject jsonObject3=new JSONObject();
                            jsonObject3.put("create_time", create_time);
                            jsonObject3.put("image", new_jsonArray3);
                            new_jsonArray.add(jsonObject3);
                            System.out.println("没有相同的create_time时:"+new_jsonArray);
                       }
                  }
                  else {
                       //JSONArray对象为空时,此时则新建一个,用JSONArray拼接image,用一个JSONObject将image和creat_time装进去,然后再add他们
                       JSONArray new_jsonArray2 = new JSONArray();
                       new_jsonArray2.add(imgFile);
                       JSONObject jsonObject2=new JSONObject();
                       jsonObject2.put("create_time", create_time);
                       jsonObject2.put("image", new_jsonArray2);
                       new_jsonArray.add(jsonObject2);
                       System.out.println("new_jsonArray开始为空时:"+new_jsonArray);
                  }
              }
         }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小春熙子

你一毛我一毛,先富带后富

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

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

打赏作者

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

抵扣说明:

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

余额充值