递归地将字符串数组放到json中

时间:2016-10-07 18:47:06

标签: java json tree nodes

尝试将此字符串列表放入json格式。字符串列表看起来像目录结构。

希望最终出局就像

[{"name":"Cars","show":false,"nodes":[{"name":"Truck","show":false,"nodes":[{"name":"Regular","show":false,"nodes":[]},{"name":"4x4","show":false,"nodes":[{"name":"Lifted","show":false,"nodes":[]}]}]},{"name":"Jeep","show":false,"nodes":[{"name":"4x4","show":false,"nodes":[]}]},{"name":"Convertable","show":false,"nodes":[]}]}]

到目前为止我可以选择最终项目,但我不确定这对我有多大帮助

    String[] li = new String[4];
    li[0] = "Cars/Truck/Regular";
    li[1] = "Cars/Truck/4x4/Lifted";
    li[2] = "Cars/Jeep/4x4";
    li[3] = "Cars/Convertable";
    doAll(li);

    public void doAll(String[] files) {
    try {
        for (String file : files) {
            String[] f = file.split("/");
            if (f.length>1) {
                logger.info("directory:"+file);
                f = (String[]) ArrayUtils.removeElement(f, f[0]);
                String temp = "";
                for(String ff : f) temp=temp+"/"+ff;
                temp = temp.replaceFirst("/", "");
                doAll(new String[]{temp});
            } else if(f.length==1){
                logger.info("file:"+file);
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:0)

为什么不创建对象并从该对象生成json?您可以为json中的每种对象创建类。例如,您可以拥有一个名为node的类:

public class node() {

  private String name;
  private boolean show;
  private node[] nodes;

  //getters and setters

}

然后,您可以使用所有车辆数据设置对象,并使用gson生成您的json。

Gson gson = new Gson();
String json = gson.toJson(node);