【发布时间】:2023-04-05 14:21:01
【问题描述】:
所需的输出如下所示。让节点类在最后被序列化,以便将类转换为 json 字符串,但问题是该过程需要循环而不是硬编码。
{"name":"Main","nodes":[{"name":"Tree","nodes":[{"name":"Branch","nodes":[{"name":"Stick","nodes":[{"name":"Leaf"}]}]}]}]}
我正在尝试循环执行此过程,这样我就不会手动将所有对象相互添加。
Node mainNode = new Node();
mainNode.setName("Main");
String directory = "Tree/Branch/Stick/Leaf";
Node n1 = new Node();
n1.setName("Tree");
Node n2 = new Node();
n2.setName("Branch");
Node n3 = new Node();
n3.setName("Stick");
Node n4 = new Node();
n4.setName("Leaf");
n3.addNode(n4);
n2.addNode(n3);
n1.addNode(n2);
mainNode.addNode(n1);
Gson gson = new Gson();
logger.info(gson.toJson(mainNode));
节点类
public class Node {
public String name;
public Node[] nodes;
public Node(){}
public Node(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Node[] getNodes() {
return nodes;
}
public void setNodes(Node[] nodes) {
this.nodes = nodes;
}
public void addNode(Node node){
this.nodes = (Node[]) ArrayUtils.add(this.nodes, node);
}
【问题讨论】:
-
如果只存储普通对象,为什么还需要数组?
标签: java json recursion serialization jackson