在java中,如何将JSONObject转换为DefaultMutableTreeNode?
我想创建一种转换JSONObject的方法,如下所示:在java中,如何将JSONObject转换为DefaultMutableTreeNode?,java,defaultmutabletreenode,Java,Defaultmutabletreenode,我想创建一种转换JSONObject的方法,如下所示: "master root" : { "folder 1" : { "folder 2" : { "example data" : "some more example values", "example data" : "some more examples" }, "example data" : "example value"
"master root" : {
"folder 1" : {
"folder 2" : {
"example data" : "some more example values",
"example data" : "some more examples"
},
"example data" : "example value"
},
"example data" : "lol"
}
对这样的事情:
"master root" : {
"folder 1" : {
"folder 2" : {
"example data" : "some more example values",
"example data" : "some more examples"
},
"example data" : "example value"
},
"example data" : "lol"
}
我尝试了一种类似以下的方法:
"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();){
字符串键=(字符串)迭代器。下一步();
if(对象获取(键)JSONObject实例){
javax.swing.tree.DefaultMutableTreeNode1=新javax.swing.tree.DefaultMutableTreeNode(键);
add(createSingleTreeNode((JSONObject)obj.get(key));
返回节点1;
}否则{
返回新的javax.swing.tree.DefaultMutableTreeNode(键);
}
}
返回新的javax.swing.tree.DefaultMutableTreeNode(“”);
}
它在某种程度上可以工作,但在到达第一个不是json对象的项后停止,它只是停止并只添加一个
关于如何正确地做到这一点,有什么想法吗?(我是java新手,因此如果有库已经这样做了,我很抱歉)我修复了它,它不会返回节点,而是将节点添加到“主”节点,您可以将其作为参数添加,下面是代码
public void createSingleTreeNode(JSONObject对象,javax.swing.tree.DefaultMutableTreeNode主节点){
javax.swing.tree.DefaultMutableTreeNode[]节点={};
for(Iterator Iterator=obj.keySet().Iterator();Iterator.hasNext();){
字符串键=(字符串)迭代器。下一步();
if(对象获取(键)JSONObject实例){
javax.swing.tree.DefaultMutableTreeNode1=新javax.swing.tree.DefaultMutableTreeNode(键);
LT.createSingleTreeNode((JSONObject)obj.get(key),node1);
master.add(node1);
}否则{
nodes=Arrays.copyOf(nodes,nodes.length+1);
nodes[nodes.length-1]=newjavax.swing.tree.DefaultMutableTreeNode(键);
}
}
for(DefaultMutableTreeNode节点:节点){
主添加(节点);
}
}
我修复了它,它不会返回节点,而是将节点添加到作为参数添加的“主”节点,下面是代码
public void createSingleTreeNode(JSONObject对象,javax.swing.tree.DefaultMutableTreeNode主节点){
javax.swing.tree.DefaultMutableTreeNode[]节点={};
for(Iterator Iterator=obj.keySet().Iterator();Iterator.hasNext();){
字符串键=(字符串)迭代器。下一步();
if(对象获取(键)JSONObject实例){
javax.swing.tree.DefaultMutableTreeNode1=新javax.swing.tree.DefaultMutableTreeNode(键);
LT.createSingleTreeNode((JSONObject)obj.get(key),node1);
master.add(node1);
}否则{
nodes=Arrays.copyOf(nodes,nodes.length+1);
nodes[nodes.length-1]=newjavax.swing.tree.DefaultMutableTreeNode(键);
}
}
for(DefaultMutableTreeNode节点:节点){
主添加(节点);
}
}