[英]How would one convert a JSONObject into a DefaultMutableTreeNode in java?
我想創建一種轉換JSONObject的方法,如下所示:
"master root" : {
"folder 1" : {
"folder 2" : {
"example data" : "some more example values",
"example data" : "some more examples"
},
"example data" : "example value"
},
"example data" : "lol"
}
像這樣:
我嘗試了一種看起來像這樣的方法:
public javax.swing.tree.DefaultMutableTreeNode createSingleTreeNode(JSONObject obj) {
for(Iterator iterator = obj.keySet().iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
if (obj.get(key) instanceof JSONObject) {
javax.swing.tree.DefaultMutableTreeNode node1 = new javax.swing.tree.DefaultMutableTreeNode(key);
node1.add(createSingleTreeNode((JSONObject) obj.get(key)));
return node1;
} else {
return new javax.swing.tree.DefaultMutableTreeNode(key);
}
}
return new javax.swing.tree.DefaultMutableTreeNode("");
}
它在某種程度上可以工作,但是在到達不是json對象的第一項后停止,它只是停止並且僅添加一個。
關於如何正確執行此操作的任何想法? (我是java的新手,所以很抱歉,如果有已經在執行此操作的庫)
我修復了它,而不是返回節點,而是將節點添加到您作為參數添加的“主”節點中,這是代碼
public void createSingleTreeNode(JSONObject obj, javax.swing.tree.DefaultMutableTreeNode master) {
javax.swing.tree.DefaultMutableTreeNode[] nodes = {};
for(Iterator iterator = obj.keySet().iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
if (obj.get(key) instanceof JSONObject) {
javax.swing.tree.DefaultMutableTreeNode node1 = new javax.swing.tree.DefaultMutableTreeNode(key);
LT.createSingleTreeNode((JSONObject) obj.get(key), node1);
master.add(node1);
} else {
nodes = Arrays.copyOf(nodes, nodes.length + 1);
nodes[nodes.length - 1] = new javax.swing.tree.DefaultMutableTreeNode(key);
}
}
for (DefaultMutableTreeNode node : nodes) {
master.add(node);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.