使用可视化表单设计器完成json 的合并
该代码需要可视化表单的支持(需购买)
这是一张表的情况,需要是将多张合并成一张,并更具标识去重;
自动合并json
controller
//多个json的合并和去重
@ApiOperation("自动合成并去重")
@PostMapping("/autoShowTable")
public Result autoShowTable(@RequestParam String rowguid,@RequestParam String dataId){
HashMap<String, Object> oneTableShow = utilThemejsontemplateInfoService.autoShowTable(rowguid, dataId);
return Result.ok().data(oneTableShow);
}
service
@Override
public HashMap<String, Object> autoShowTable(String rowguid, String dataId) {
ArrayList<Object> list = new ArrayList<>();
JsonParser parser=new JsonParser(); //创建JSON解析器
Gson gson = new Gson();
String jsonList="{\"list\":[],\"config\":{\"labelWidth\":100,\"labelPosition\":\"left\",\"size\":\"mini\",\"customClass\":\"\",\"ui\":\"element\",\"layout\":\"horizontal\",\"labelCol\":3,\"width\":\"80%\",\"hideLabel\":false,\"hideErrorMessage\":false}}";
Map map = gson.fromJson(jsonList, Map.class);
String s1 = vShareTaskThemeBasicService.selctTaskGuid(rowguid, dataId);
String[] taskguid = s1.split(",");
List<UtilInfo> taskInfo = utilInfoMapper.selectList(new QueryWrapper<UtilInfo>().in("taskguid", taskguid).eq("validstatus","1"));
if (taskInfo.size()>0){
for (UtilInfo info : taskInfo) {
JsonObject object=(JsonObject) parser.parse(info.getJsoncontent()); //创建JsonObject对象
JsonArray list3 = object.get("list").getAsJsonArray();
for (JsonElement element : list3) {
list.add(element);
}
}
}
map.put("list",list);
String s = gson.toJson(map);
JsonArray list1 = parser.parse(s).getAsJsonObject().get("list").getAsJsonArray();
String model ="";
String model1 ="";
JSONArray[] arr = new JSONArray[0];
for (int i = 0; i < list1.size(); i++) {
JsonElement jsonElement = list1.get(i);
if (jsonElement.getAsJsonObject().has("rows")){
JsonArray rows = jsonElement.getAsJsonObject().get("rows").getAsJsonArray();
for (JsonElement row : rows) {
JsonArray columns = row.getAsJsonObject().get("columns").getAsJsonArray();
for (JsonElement column : columns) {
JsonArray list2 = column.getAsJsonObject().get("list").getAsJsonArray();
for (JsonElement element : list2) {
model = element.getAsJsonObject().get("model").toString().replace("\"","");
System.out.println(element.getAsJsonObject().get("model").getAsString());
for (int k = 1; k < list1.size(); k++) {
if (i+k<list1.size()){
JsonElement jsonElement1 = list1.get(i+k);
if (jsonElement1.getAsJsonObject().has("rows")){
JsonArray rows1 = jsonElement1.getAsJsonObject().get("rows").getAsJsonArray();
for (JsonElement row1 : rows1) {
JsonArray columns1 = row1.getAsJsonObject().get("columns").getAsJsonArray();
//完全去重
for (int j = 0; j < columns1.size(); j++) {
JsonElement column2 = columns1.get(j);
JsonArray list3 = column2.getAsJsonObject().get("list").getAsJsonArray();
for (JsonElement element1 : list3) {
model1 = element1.getAsJsonObject().get("model").toString().replace("\"","");
if (model.equals(model1)) {
element1.getAsJsonObject().get("options").getAsJsonObject().addProperty("hidden","true");
System.out.println(element1.getAsJsonObject().get("options").getAsJsonObject().get("hidden").getAsString());
columns1.remove(j);
}
}
}
}
}
}
}
}
}
}
}
//子表单去重
if (jsonElement.getAsJsonObject().has("tableColumns")){
String model2 = jsonElement.getAsJsonObject().get("model").getAsString().replace("\"", "");
for (int k = 1; k < list1.size()-1; k++) {
if (i+k<list1.size()){
JsonElement jsonElement1 = list1.get(i+k);
if (jsonElement1.getAsJsonObject().has("tableColumns")){
String model3 = jsonElement1.getAsJsonObject().get("model").getAsString().replace("\"", "");
if (model2.equals(model3)){
list1.remove(i+k);
}
}
}
}
}
}
String theninfoid = IdCreator.getId(20);
map.put("list",list1);
String jsoncontent = gson.toJson(map);
//分装返回值
HashMap<String, Object> map1 = new HashMap<>();
map1.put("jsoncontent",jsoncontent);
map1.put("theninfoid",theninfoid);
System.out.println(jsoncontent);
return map1;
}