19 簡單的json解析
阿新 • • 發佈:2018-11-04
從裡到外
用程式碼封裝成json格式的資料
1 封裝的物件是:
解決引數的名字問題
/** * 全部查詢,並且生成樹狀結構 * @return */ public ItemCatResult queryAllToTree() { ItemCatResult result = new ItemCatResult(); // 全部查出,並且在記憶體中生成樹形結構 EasyUIResult<ItemCat> easyUIResult = queryList(1, 99999, Order.formString("sort_order.asc")); List<ItemCat> cats = easyUIResult.getRows(); 全部查出以後,沒有結構。將資料封裝成所需要的資料 ----------------------------------------- // 轉為map儲存,key為父節點ID,value為資料集合 Map<Long, List<ItemCat>> itemCatMap = new HashMap<Long, List<ItemCat>>(); for (ItemCat itemCat : cats) { if(!itemCatMap.containsKey(itemCat.getParentId())){ itemCatMap.put(itemCat.getParentId(), new ArrayList<ItemCat>()); } itemCatMap.get(itemCat.getParentId()).add(itemCat); } // 封裝一級物件 List<ItemCat> itemCatList1 = itemCatMap.get(0L); for (ItemCat itemCat : itemCatList1) { ItemCatData itemCatData = new ItemCatData(); itemCatData.setUrl("/products/" + itemCat.getId() + ".html"); itemCatData.setNname("<a href='"+itemCatData.getUrl()+"'>"+itemCat.getName()+"</a>"); result.getItemCats().add(itemCatData); if(!itemCat.getIsParent()){ continue; } // 封裝二級物件 List<ItemCat> itemCatList2 = itemCatMap.get(itemCat.getId()); List<ItemCatData> itemCatData2 = new ArrayList<ItemCatData>(); itemCatData.setItems(itemCatData2); for (ItemCat itemCat2 : itemCatList2) { ItemCatData id2 = new ItemCatData(); id2.setNname(itemCat2.getName()); id2.setUrl("/products/" + itemCat2.getId() + ".html"); itemCatData2.add(id2); if(itemCat2.getIsParent()){ // 封裝三級物件 List<ItemCat> itemCatList3 = itemCatMap.get(itemCat2.getId()); List<String> itemCatData3 = new ArrayList<String>(); id2.setItems(itemCatData3); for (ItemCat itemCat3 : itemCatList3) { itemCatData3.add("/products/" + itemCat3.getId() + ".html|"+itemCat3.getName()); } } } if(result.getItemCats().size() >= 14){ break; } } return result; }