1. Nutzungsszenarien
Organisationsstrukturbaum, in der Regel gibt es eine Organisationsstrukturtabelle, einschließlich Felder wie Code (Code), PCode (oberer Code), Name (Organisationsname)
2. Daten konstruieren (folgende Daten sind keine organisatorischen Daten, sondern nur Daten, die ich erfunden habe)
Liste <Tree <test >> trees = new ArrayList <Tree <test >> (); tests.add (neuer Test ("0", "", "über mich"); Tests.Add (neuer Test ("1", "0", "technisches Lernen"); "Java")); tests.add (neuer Test ("4", "1", "oracle"); tests.add (neuer Test ("5", "1", "Spring"); "1", "Linux"); Tests.Add (neuer Test ("9", "2", "Cycling"); "4", "SQL")); Tests.Add (neuer Test ("14", "5", "ioc"); tests.add (neuer Test ("15", "5", "AOP"); "etc")); tests.add (neuer Test ("19", "4", "usw."); Tests.Add (neuer Test ("20", "5", "usw."); "etc")); tests.add (neuer Test ("19", "4", "usw."); tests.add (neuer Test ("20", "5", "," usw. "); tests.add (neuer Test (" 20 "," 5 ", usw.");3. Quellcode
Tree.java
Paket Perly Pers.kangxu.Datautils.Bean.Tree; Import Java.util.ArrayList; Import Java.util.List ;liste; import Java.util.map; Ausweis; / *** Node -Text anzeigen*/ privater Zeichenfolge Text; / ** * Knotenstatus, offen geschlossen */ private String state = "open"; / ** * ob der Knoten ausgewählt ist. / *** Knotenattribut*/ private Liste <map <String, Objekt >> Attribute; / *** Kinder des Knotens*/ private Liste <Tree <t >> Kinder = Neue ArrayList <Tree <t >> (); / ** * übergeordnete ID */ private String parentId; / *** ob es einen übergeordneten Knoten gibt*/ privat boolean isParent = false; / *** ob es einen untergeordneten Knoten gibt*/ privat boolean ischildren = false; public String getid () {return id; } public void setID (String -ID) {this.id = id; } public string getText () {return text; } public void setText (String text) {this.text = text; } public String getState () {Return State; } public void setState (String Status) {this.state = STAAT; } public boolean iSchecked () {return checked; } public void setChecked (boolean checked) {this. Checked = geprüft; } publiclist <map <String, Objekt >> getAtTributes () {Rückgabeattribute; } public void setAttributes (Liste <map <String, Objekt >> Attribute) {this.attributes = Attribute; } publiclist <tree <t >> getChildren () {return Kinder; } public void setChildren (list <tree <t >> Kinder) {this.children = Kinder; } public boolean isParent () {return isParent; } public void setParent (boolean iSparent) {this.issparent = isParent; } public boolean ischildren () {return ischildren; } public void setChildren (boolean ischildren) {this.Isschildren = ischildren; } public String getParentID () {return pentId; } public void setParentID (String parentId) {this.parentID = parentId; } public tree (String -ID, Stringtext, String -Status, boolean geprüft, Liste <map <String, Objekt >> Attribute, Liste <Tree <T >> Kinder, boolescher Issparent, Boolesche Isschildren, String ParentID) {Super (); this.id = id; this.text = text; this.state = Status; this.conted = überprüft; this.attributes = Attribute; this.Children = Kinder; this.isharent = issparent; this. -ischildren = ischildren; this.Parentid = parentId; } public tree () {Super (); } @Override public String toString () {return json.tojonstring (this); }}Buildtree.java
package pers.kangxu.datautils.common.tree;import java.util.ArrayList;import java.util.List;import pers.kangxu.datautils.bean.tree.Tree;/** * Build tree * TODO * <br> * @author kangxu2 2017-1-7 * */public class BuildTree { /** * TODO * <br> * @Author Kangxu2 2017-1-7 * * @param Knoten * @return */ public static <T> Baum <T> Build (Liste <Tree <T >> Knoten) {if (null == null) {return null; } List <tree <t >> topnodes = new ArrayList <tree <t >> (); für (Baum <T> Kinder: Knoten) {String pid = childhes.getParentid (); if (pid == null || "" .Equals (pid)) {topnodes.add (Kinder); weitermachen; } für (Baum <T> Eltern: Knoten) {String id = parent.getId (); if (id! Kinder.SetParent (wahr); parent.setchildren (wahr); weitermachen; }}} Baum <T> root = new tree <t> (); if (topnodes.size () == 0) {root = topnodes.get (0); } else {root.setId ("-1"); root.setParentid (""); root.setParent (falsch); root.setchildren (wahr); root.schecked (wahr); root.setchildren (topnodes); root.setText ("Top -Level -Knoten"); } return root; }}Buildtreetester.java
Paket pers.kangxu.datautils.test; import Java.util.ArrayList; Import Java.util.List; Import Pers.kangxu.Datautils.bean.Tree.Tree; Liste <Tree <test >> trees = new ArrayList <Tree <test >> (); Liste <Test> tests = new ArrayList <Test> (); Tests.Add (neuer Test ("0", "", "über mich")); Tests.Add (neuer Test ("1", "0", "Technisches Lernen"); Tests.Add (neuer Test ("2", "0", "Interesse")); Tests.Add (neuer Test ("3", "1", "Java")); Tests.Add (neuer Test ("4", "1", "Oracle"); Tests.Add (neuer Test ("5", "1", "Spring"); Tests.Add (neuer Test ("6", "1", "SpringMVC"); Tests.Add (neuer Test ("7", "1", "fastdfs"); Tests.Add (neuer Test ("8", "1", "Linux"); Tests.Add (neuer Test ("9", "2", "Radfahren"); Tests.Add (neuer Test ("10", "2", "Essen, Trinken und Spaß haben"); Tests.Add (neuer Test ("11", "2", "Lernen"); Tests.Add (neuer Test ("12", "3", "String")); Tests.Add (neuer Test ("13", "4", "SQL")); Tests.Add (neuer Test ("14", "5", "IOC"); Tests.Add (neuer Test ("15", "5", "AOP"); Tests.Add (neuer Test ("16", "1", "," usw. ")); Tests.Add (neuer Test ("17", "2", "," etc ")); Tests.Add (neuer Test ("18", "3", "usw.")); Tests.Add (neuer Test ("19", "4", "usw.")); Tests.Add (neuer Test ("20", "5", "usw.")); für (Test -Test: Tests) {Tree <Test> baum = neuer Baum <Test> (); tree.setId (test.getId ()); Tree.SetParentid (test.getPID ()); tree.setText (test.getText ()); Bäume.Add (Baum); } Baum <test> t = Buildtree.build (Bäume); System.out.println (t); }} Klassentest {private String -ID; private String -PID; privater Stringtext; public String getid () {return id; } public void setID (String -ID) {this.id = id; } public String getPid () {return pid; } public void setpid (String pid) {this.pid = pid; } public string getText () {return text; } public void setText (String text) {this.text = text; } public test (String -ID, String PID, String -Text) {Super (); this.id = id; this.pid = pid; this.text = text; } public test () {Super (); } @Override public String toString () {return "test [id =" + id + ", pid =" + pid + ", text =" + text + "]"; }}4. Betriebsergebnisse
JSON -Daten:
{ "checked": true, "children": [ { "checked": false, "children": [ { "checked": false, "children": [ { "checked": false, "children": [ { "checked": false, "children": [ { "checked": false, "children": [], "id": "12", "parent": true, "parentId": "3", "state": "open", "text": "String" }, { "checked": false, "children": [], "id": "18", "parent": true, "parentId": "3", "state": "open", "text": "etc" } ], "id": "3", "parent": true, "parentId": "1", "state": "open", "text": "JAVA" }, { "checked": false, "children": [ { "checked": false, "children": [], "id": "13", "parent": true, "parentId": "4", "state": "open", "text": "sql" }, { "checked": false, "children": [], "id": "19", "parent": true, "parentId": "4", "state": "open", "text": "etc" } ], "id": "4", "parent": true, "parentId": "1", "state": "open", "text": "oracle" }, { "checked": false, "children": [ { "checked": false, "children": [], "id": "14", "parent": true, "parentId": "5", "state": "open", "text": "ioc" }, { "checked": false, "children": [], "id": "15", "parent": true, "parentId": "5", "state": "open", "text": "aop" }, { "checked": false, "children": [], "id": "20", "parent": true, "parentId": "5", "state": "open", "text": "etc" } ], "id": "5", "parent": true, "parentId": "1", "state": "open", "text": "spring" }, { "checked": false, "children": [], "id": "6", "parent": true, "parentId": "1", "state": "open", "text": "springmvc" }, { "checked": false, "children": [], "id": "7", "parent": true, "parentId": "1", "state": "open", "text": "fastdfs" }, { "checked": false, "children": [], "id": "8", "parent": true, "parentId": "1", "state": "open", "text": "linux" }, { "checked": false, "children": [], "id": "16", "parent": true, "parentId": "1", "state": "open", "text": "etc" } ], "id": "1", "parent": true, "parentId": "0", "state": "open", "text": "Technical Learning" }, { "checked": false, "children": [ { "checked": false, "children": [], "id": "9", "parent": true, "parentId": "2", "state": "open", "text": "cycling" }, { "checked": false, "children": [], "id": "10", "parent": true, "parentId": "2", "state": "open", "text": "eating, drinking and having fun" }, { "checked": false, "children": [], "id": "11", "parent": true, "parentId": "2", "state": "open", "text": "learning" }, { "checked": false, "children": [], "id": "17", "parent": true, "parentId": "2", "state": "open", "text": "etc" } ], "id": "2", "parent": true, "parentId": "0", "state": "open", "text": "interest" } ], "id": "0", "parent": false, "parentId": "", "state": "open", "text": "about me" } ], "id": "-1", "parent": false, "parentId": "", "state": "open", "text": "Top Node"}Das obige ist der vollständige Inhalt der Java -Methode zur Erzeugung von Baumstruktur JSON -Daten basierend auf dem Inhalt der Datenbanktabelle. Ich hoffe, jeder kann Wulin.com unterstützen ~