- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- java樹(shù)形菜單對象生成
本文實(shí)例為大家分享了java樹(shù)形菜單對象生成的具體代碼,供大家參考,具體內容如下
package com.ruoyi.system.utils.Vo; import java.util.ArrayList; import java.util.List; public class TreeNode { /** * 節點(diǎn)ID */ private Integer id; /** * 節點(diǎn)名稱(chēng) */ private String name; /** * 父節點(diǎn)ID */ private Integer parentId; /** * 子節點(diǎn)列表 */ private List childrenList = new ArrayList(); public Integer getId() { return id; } public void setId(Integer id) { this.id=id; } public String getName() { return name; } public void setName(String name) { this.name=name; } public Integer getParentId() { return parentId; } public void setParentId(Integer parentId) { this.parentId=parentId; } public List getChildrenList() { return childrenList; } public void setChildrenList(List childrenList) { this.childrenList=childrenList; } }
package com.ruoyi.system.utils; import com.ruoyi.system.utils.Vo.TreeNode; import java.util.ArrayList; import java.util.List; public class TreeUtil { private List<TreeNode> treeNodeList =new ArrayList<>(); public TreeUtil(List<TreeNode> list){ treeNodeList = list; } /** * 獲取節點(diǎn)信息 * @param nodeId 節點(diǎn)ID * @return */ public TreeNode getNodeById(int nodeId){ TreeNode treeNode = new TreeNode(); for (TreeNode item : treeNodeList) { if (item.getId() == nodeId) { treeNode = item; break; } } return treeNode; } /** * 獲取子節點(diǎn)信息 * @param nodeId 節點(diǎn)ID * @return */ public List<TreeNode> getChildrenNodeById(int nodeId){ List<TreeNode> childrenTreeNode = new ArrayList<TreeNode>(); for (TreeNode item : treeNodeList) { if(item.getParentId() == nodeId){ childrenTreeNode.add(item); } } return childrenTreeNode; } /** * 遞歸生成Tree結構數據 * @param rootId 根節點(diǎn)ID * @return */ public TreeNode generateTreeNode(int rootId){ TreeNode root = this.getNodeById(rootId); List<TreeNode> childrenTreeNode = this.getChildrenNodeById(rootId); for (TreeNode item : childrenTreeNode) { TreeNode node = this.generateTreeNode(item.getId()); root.getChildrenList().add(node); } return root; } public static void main(String[] args) { List<TreeNode> nodeList = new ArrayList<>(); TreeNode treeNode = new TreeNode(); treeNode.setId(1); treeNode.setName("中國"); treeNode.setParentId(0); nodeList.add(treeNode); treeNode = new TreeNode(); treeNode.setId(2); treeNode.setName("北京市"); treeNode.setParentId(1); nodeList.add(treeNode); treeNode = new TreeNode(); treeNode.setId(3); treeNode.setName("浙江省"); treeNode.setParentId(1); nodeList.add(treeNode); treeNode = new TreeNode(); treeNode.setId(4); treeNode.setName("杭州市"); treeNode.setParentId(3); nodeList.add(treeNode); treeNode = new TreeNode(); treeNode.setId(5); treeNode.setName("西湖區"); treeNode.setParentId(4); nodeList.add(treeNode); treeNode = new TreeNode(); treeNode.setId(6); treeNode.setName("濱江區"); treeNode.setParentId(4); nodeList.add(treeNode); treeNode = new TreeNode(); treeNode.setId(7); treeNode.setName("金華市"); treeNode.setParentId(3); nodeList.add(treeNode); TreeUtil treeUtil = new TreeUtil(nodeList); treeNode = treeUtil.generateTreeNode(1); System.out.println("樹(shù)狀結構Json格式數據:" + JsonUtils.objectToJson(treeNode, 1)); } }
package com.ruoyi.system.utils; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; public class JsonUtils { // 定義jackson對象 private static final ObjectMapper MAPPER = new ObjectMapper(); /** * 將對象轉換成json字符串 * @param obj 需轉換的對象 * @param flag Json格式化標識(0-否,1-是) * @return */ public static <T> String objectToJson(T obj, int flag) { if (obj == null) { return null; } try { String string; if (flag == 1) { string = obj instanceof String ? (String) obj : MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(obj); } else { string = obj instanceof String ? (String) obj : MAPPER.writeValueAsString(obj); } return string; } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } /** * 將json結果集轉化為對象 * * @param jsonData json數據 * @param beanType 對象中的object類(lèi)型 * @return */ public static <T> T jsonToPojo(String jsonData, Class<T> beanType) { try { T t = MAPPER.readValue(jsonData, beanType); return t; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 將json數據轉換成pojo對象list * <p>Title: jsonToList</p> * <p>Description: </p> * @param jsonData * @param beanType * @return */ public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) { JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); try { List<T> list = MAPPER.readValue(jsonData, javaType); return list; } catch (Exception e) { e.printStackTrace(); } return null; } public static void main(String[] args) { System.out.println("測試字符串對象:" + objectToJson("hello world", 1)); } }
以上就是本文的全部?jì)热?,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站