使用数组构建 ExtJs TreeStore 结构

	/**
	 * 构建 ExtJS Tree 使用的Store
	 * @param prentid
	 * @param jsArr
	 * @return
	 */
	public static JSONArray buildStore4ExtTree(int prentid, JSONArray jsArr){
		JSONArray retArray = new JSONArray();
		for (int i = 0; i < jsArr.size(); i++) {
			JSONObject obj = jsArr.getJSONObject(i);
			if(prentid == obj.getIntValue("pid")){
				retArray.add(obj);
			}
		}
		
		for (int i = 0; i < retArray.size(); i++) {
			JSONObject obj = retArray.getJSONObject(i);
			JSONArray tmpArr = buildStore4ExtTree(obj.getIntValue("id"),jsArr);
			if(!tmpArr.isEmpty()){
				obj.put("children", tmpArr);
           obj.put("leaf",0);
        }
		}
		return retArray;
	}
	
	public static void main(String[] args) {
		JSONObject obj1 = new JSONObject();
		obj1.put("pid", 0);
		obj1.put("id", 1);
		obj1.put("name", "name1");
		
		JSONObject obj2 = new JSONObject();
		obj2.put("pid", 0);
		obj2.put("id", 2);
		obj2.put("name", "name2");
		
		JSONObject obj3 = new JSONObject();
		obj3.put("pid", 2);
		obj3.put("id", 3);
		obj3.put("name", "name3");
		
		JSONObject obj4 = new JSONObject();
		obj4.put("pid", 2);
		obj4.put("id", 4);
		obj4.put("name", "name4");
		
		JSONObject obj5 = new JSONObject();
		obj5.put("pid", 4);
		obj5.put("id", 5);
		obj5.put("name", "name5");
		
		JSONObject obj6 = new JSONObject();
		obj6.put("pid", 5);
		obj6.put("id", 6);
		obj6.put("name", "name6");
		
		JSONObject obj7 = new JSONObject();
		obj7.put("pid", 6);
		obj7.put("id", 7);
		obj7.put("name", "name7");
		
		JSONObject obj8 = new JSONObject();
		obj8.put("pid", 5);
		obj8.put("id", 8);
		obj8.put("name", "name8");
		
		
		JSONObject obj9 = new JSONObject();
		obj9.put("pid", 4);
		obj9.put("id", 9);
		obj9.put("name", "name9");
		
		JSONObject obj10 = new JSONObject();
		obj10.put("pid", 6);
		obj10.put("id", 10);
		obj10.put("name", "name10");
		
		JSONObject obj11 = new JSONObject();
		obj11.put("pid", 5);
		obj11.put("id", 11);
		obj11.put("name", "name11");
		
		
		JSONObject obj12 = new JSONObject();
		obj12.put("pid", 10);
		obj12.put("id", 12);
		obj12.put("name", "name12");
		
		JSONArray arr = new JSONArray();
		
		arr.add(obj1);
		arr.add(obj2);
		arr.add(obj3);
		arr.add(obj4);
		arr.add(obj5);
		arr.add(obj6);
		arr.add(obj7);
		arr.add(obj8);
		arr.add(obj9);
		arr.add(obj10);
		arr.add(obj11);
		arr.add(obj12);
		
		System.out.println(buildStore4ExtTree(0,arr));
		
	}
原文地址:https://www.cnblogs.com/icenter/p/2100513.html