Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,如何将JSONObject转换为DefaultMutableTreeNode?_Java_Defaultmutabletreenode - Fatal编程技术网

在java中,如何将JSONObject转换为DefaultMutableTreeNode?

在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"

我想创建一种转换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"
}
对这样的事情:

"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节点:节点){
主添加(节点);
}
}