返回特定的树形json数据

来源:互联网 发布:php防止ajax重复提交 编辑:程序博客网 时间:2024/06/05 00:12
public class Test {   @org.junit.Test   public void test(){      List test = new ArrayList();      Map m = new HashMap();      m.put("lv1", "一1");      m.put("lv2", "二1");      m.put("lv3", "三1");      test.add(m);      m = new HashMap();      m.put("lv1", "一1");      m.put("lv2", "二1");      m.put("lv3", "三2");      test.add(m);      m = new HashMap();      m.put("lv1", "一1");      m.put("lv2", "二2");      m.put("lv3", "三3");      test.add(m);      m = new HashMap();      m.put("lv1", "一2");      m.put("lv2", "二3");      m.put("lv3", "三4");      test.add(m);      m = new HashMap();      m.put("lv1", "一2");      m.put("lv2", "二4");      m.put("lv3", "三5");      test.add(m);      List r = getCascaderData(test);      System.out.println(r.size());   }   private List getCascaderData(List list){      List<CascadeItem> result = new ArrayList<>();      for(int i = 0; i < list.size(); i++){         Map m = (HashMap)list.get(i);         String lv1 = (String)m.get("lv1");         String lv2 = (String)m.get("lv2");         String lv3 = (String)m.get("lv3");         int lvIndex = findListIndex(result, lv1);         if(lvIndex == -1) {            CascadeItem item1 = new CascadeItem(lv1, lv1);            CascadeItem item2 = new CascadeItem(lv2, lv2);            CascadeItem item3 = new CascadeItem(lv3, lv3);            item2.children.add(item3);            item1.children.add(item2);            result.add(item1);         }         else {            CascadeItem lv1Item = result.get(lvIndex);            int lv2Index = findListIndex(lv1Item.children, lv2);            if(lv2Index == -1) {               CascadeItem item2 = new CascadeItem(lv2, lv2);               CascadeItem item3 = new CascadeItem(lv3, lv3);               item2.children.add(item3);               lv1Item.children.add(item2);            }            else {               CascadeItem lv2Item = lv1Item.children.get(lv2Index);               CascadeItem item3 = new CascadeItem(lv3, lv3);               lv2Item.children.add(item3);            }         }      }      return result;   }   private int findListIndex(List<CascadeItem> list, String s){      for(int i = 0; i < list.size(); i++){         if(list.get(i).value.equals(s))            return i;      }      return -1;   }   public class CascadeItem {      String label;      String value;      List<CascadeItem> children;      public CascadeItem(String label, String value){         this.label = label;         this.value = value;         children = new ArrayList<>();      }   }}
在getCascaderData处获取对象信息~
0 0