java - 使用java创建分层json

标签 java json

我需要制作如下所示的 json-

{
"name":"Root",
"children":[{
        "name":"Mind",
        "children":[
            {
                "name":"Sea"
            },{
                "name":"water"
            },{
                "name":"Wind"
            }]
    },{
        "name":"Habbit",
        "children":[
            {"name":"Sea"},
            {"name":"water"},
            {"name":"Wind"}
        ]},{
            "name":"Culture",
            "children":[
                {
                    "name":"Sea"
                },{
                    "name":"water"
                },{
                    "name":"Wind"
                }
            ]}               
        ]
 }

但我无法创建它。我创建的是这样的-

{"name":"Root","children":[{"name":"Mind","children":[{"name":"Sea"},{"name":"water"},{"name":"Wind"}]}]}
{"name":"Root","children":[{"name":"Habbit","children":[{"name":"Sea"},{"name":"water"},{"name":"Wind"}]}]}
{"name":"Root","children":[{"name":"Culture","children":[{"name":"Sea"},{"name":"water"},{"name":"Wind"}]}]}

我在下面给出我的代码 -

public class Hirarchy {
public static class Entry {
    private String name;

    public Entry(String name) {
        this.name = name;
    }

    private List<Entry> children;
    public void add(Entry node) {
        if (children == null)
            children = new ArrayList<Entry>();
        children.add(node);
    }

    public static void main(String[] args) {
        List<String> listofParent = new ArrayList<String>();
        listofParent.add("Mind");
        listofParent.add("Habbit");
        listofParent.add("Culture");

        List<String> listofChild = new ArrayList<String>();
        listofChild.add("Sea");
        listofChild.add("water");
        listofChild.add("Wind");
        Entry mainRoot=null;
        for (int i = 0; i < listofParent.size(); i++) {
            Entry root = new Entry(listofParent.get(i));
            mainRoot= aMethod2form(root, listofChild);
            Entry e=new Entry("Root");
            e.add(mainRoot);
            Gson g=new Gson();
            System.out.println(g.toJson(e));
        }
    }
    private static Entry aMethod2form(Entry root, List<String> listofChild) {
        for(int i=0;i<listofChild.size();i++){
            root.add(new Entry(listofChild.get(i)));
        }
          return root;
    }
}
}

在此代码中,我采用一个字符串作为主父节点,并使用两个列表作为子节点和其他父节点。现在,我将父节点和子节点添加到它们的 resp 中。列表,并使它们都成为主父节点的子节点。但我无法做到这一点。请帮助任何人..

最佳答案

将 gson 行替换为:

Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(g.toJson(e));

关于java - 使用java创建分层json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20139354/

相关文章:

java - 我的 textview 无法在 Android Studio 中工作

java - JAVA从目录中逐行读取多个文本文件

java - 如何在 Java 中安全地用双斜杠替换单斜杠,同时保持现有的双斜杠不变?

json - 准确的JSON文本编码检测

javascript - cakephp 2.2 在 Controller 中检索 json 数据

java - hibernate - 无法执行查询

java - 在JavaFX中在矩形边框上画圆

javascript - 将对象数据插入 JSON 文件

jquery - Google Buzz API通过JQuery返回Null吗?

javascript - Try Catch 中的 NodeJS JSON 写入错误