这里主要是从数据库取出了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);
}
}
}