java树形菜单对象生成

网友投稿 291 2022-10-24


java树形菜单对象生成

本文实例为大家分享了java树形菜单对象生成的具体代码,供大家参考,具体内容如下

1、TreeNode对象

package com.ruoyi.system.utils.Vo;

import java.util.ArrayList;

import java.util.List;

public class TreeNode {

/**

* 节点ID

*/

private Integer id;

/**

* 节点名称

*/

private String name;

/**

* 父节点ID

*/

private Integer parentId;

/**

* 子节点列表

*/

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;

}

}

2、TreeUtil

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 treeNodeList =new ArrayList<>();

public TreeUtil(List list){

treeNodeList = list;

}

/**

* 获取节点信息

* @param nodeId 节点ID

* @return

*/

public TreeNode getNodeById(int nodeId){

TreeNode treeNode = new TreeNode();

for (TreeNode item : treeNodeList) {

if (item.getId() == nodeId) {

treeNode = item;

break;

}

}

return treeNode;

}

/**

* 获取子节点信息

* @param nodeId 节点ID

* @return

*/

public List getChildrenNodeById(int nodeId){

List childrenTreeNode = new ArrayList();

for (TreeNode item : treeNodeList) {

if(item.getParentId() == nodeId){

childrenTreeNode.add(item);

}

}

return childrenTreeNode;

}

/**

* 递归生成Tree结构数据

* @param rootId 根节点ID

* @return

*/

publichttp:// TreeNode generateTreeNode(int rootId){

TreeNode root = this.getNodeById(rootId);

List 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 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)http://;

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("树状结构json格式数据:" + JsonUtils.objectToJson(treeNode, 1));

}

}

3、JsonUtil

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 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类型

* @return

*/

public static T jsonToPojo(String jsonData, Class beanType) {

try {

T t = MAPPER.readValue(jsonData, beanType);

return t;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

/**

* 将json数据转换成pojo对象list

*

Title: jsonToList

*

Description:

* @param jsonData

* @param beanType

* @return

*/

public static List jsonToList(String jsonData, Class beanType) {

JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);

try {

List 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));

}

}

4、运行结果


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网络运维基础----面试题
下一篇:信息安全-DLP(数据防泄漏)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~