树中 children 转化为 不同的列
原数据结构:
转换后数据结构:
代码:
package com.platform.project.zhjd;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class A {
public static int deep = 1;
public static int num = 0;
public static int count = 0;
public static JSONArray tableData = new JSONArray();
public static JSONObject itemObj = new JSONObject();
public static void test(JSONArray children){
for (int i = 0; i < children.size(); i++) {
JSONObject jsonObject = children.getJSONObject(i);
JSONArray children1 = jsonObject.getJSONArray("children");
itemObj = JSONObject.parseObject(itemObj.toJSONString());
itemObj.put("id",jsonObject.getString("id"));
itemObj.put("label"+deep,jsonObject.getString("label"));
if(children1 != null && children1.size() > 0){
count = children1.size();
deep ++;
//有子节点,递归
test(children1);
}else{//没有子节点了
tableData.add(itemObj);
num ++;
continue;
}
itemObj = new JSONObject();
deep = 1;
}
}
public static void main(String[] args) {
String str = "[{\"id\":99999,\"label\":\"督查表\",\"children\":[{\"id\":1,\"label\":\"1、一级标题\",\"children\":[{\"id\":4,\"label\":\"1.1 \",\"children\":[]},{\"id\":1001,\"label\":\"1.2\",\"children\":[{\"id\":1000,\"label\":\"1.2.1\",\"children\":[{\"id\":1001,\"label\":\"1.2.1.1\",\"children\":[]},{\"id\":1002,\"label\":\"1.2.1.2\",\"children\":[]}]}]}]},{\"id\":1000,\"label\":\"2、二级标题\",\"children\":[{\"id\":1002,\"label\":\"2.1\",\"children\":[]}]}]}]";
JSONArray jsonArray = JSONArray.parseArray(str);
JSONArray children = jsonArray.getJSONObject(0).getJSONArray("children");
test(children);
System.out.println(tableData);
}
}