Java 将目录转换为字符串到json数组节点
将此列表指定为字符串数组:Java 将目录转换为字符串到json数组节点,java,json,Java,Json,将此列表指定为字符串数组: Cars/Truck/Regular Cars/Truck/4x4/Lifted Cars/Jeep/4x4 Cars/Convertable 如何将其解析为json格式: [{"name":"Cars","nodes":[{"name":"Truck","nodes":[{"name":"Regular","nodes":[]},{"name":"4x4","nodes":[{"name":"Lifted","nodes":[]}]}]},{"name":"Jee
Cars/Truck/Regular
Cars/Truck/4x4/Lifted
Cars/Jeep/4x4
Cars/Convertable
如何将其解析为json格式:
[{"name":"Cars","nodes":[{"name":"Truck","nodes":[{"name":"Regular","nodes":[]},{"name":"4x4","nodes":[{"name":"Lifted","nodes":[]}]}]},{"name":"Jeep","nodes":[{"name":"4x4","nodes":[]}]},{"name":"Convertable","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();
}
}
产生:
directory:Cars/Truck/Regular
directory:Truck/Regular
file:Regular
directory:Cars/Truck/4x4/Lifted
directory:Truck/4x4/Lifted
directory:4x4/Lifted
file:Lifted
directory:Cars/Jeep/4x4
directory:Jeep/4x4
file:4x4
directory:Cars/Convertable
file:Convertable
可能您必须首先创建一个保存这些数据的结构,然后将所有数据馈送到该结构中,最后将结果序列化为json字符串。伪代码类似于:
class Node {
String name;
List<Node> nodes; // sub nodes
/*
Add new node under current node.
*/
public void addNode(Node node) {...}
}
类节点{
字符串名;
列出节点;//子节点
/*
在当前节点下添加新节点。
*/
public void addNode(节点节点){…}
}
从第一个值(比如Car)开始创建结构,然后尝试在其子节点(或者子节点的子节点)中递归查找左值(比如/Truck、/Truck/Regular)。如果找到,则不执行任何操作,否则将创建一个子节点并将其添加到上次找到的节点 您已经尝试了哪些代码?@FishStix在递归部分添加了codeconfused。我不知道该如何设置该部分