树形结构实体类ModelMenu
/***
* json数组 递归 返回List<ModelMenu>
* @param jsonArray
* @return
*/
public static ArrayList<ModelMenu> convertModelMenu(JSONArray jsonArray) {
ArrayList<ModelMenu> modelMenus = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
ModelMenu modelMenu = new ModelMenu();
JSONObject m = jsonArray.getJSONObject(i);
JSONArray child=new JSONArray();
if(m.has("child")){
child = m.getJSONArray("child");
}
if (child.size() > 0) {
modelMenu.setChild(convertModelMenu(child));
}
modelMenu.setId(m.getString("id"));
modelMenu.setParent_id(m.getString("parent_id"));
modelMenu.setType(m.getString("type"));
modelMenu.setName(m.getString("name"));
// modelMenu.setNewId(false);
if(m.has("db_type")){
modelMenu.setDbType(m.getString("db_type"));
}
modelMenus.add(modelMenu);
}
return modelMenus;
}
/***
* 返回所有叶子节点 实体对象集合
* @param modelMenus
* @return
*/
public static ArrayList<ModelMenu> getChildList(List<ModelMenu> modelMenus) {
ArrayList<ModelMenu> childList=new ArrayList<>();
for(ModelMenu modelMenu : modelMenus){
List<ModelMenu> child = modelMenu.getChild();
if(child!=null&&child.size()>0){
childList.addAll(getChildList(child));
}else if(!modelMenu.getParent_id().equals("0")){//不是顶级
childList.add(modelMenu);
}
}
return childList;
}