gpt4 book ai didi

java输出一个格式的树

转载 作者:行者123 更新时间:2023-12-01 15:21:39 25 4
gpt4 key购买 nike

我想使用java为JQuery Dynatree输出一棵树,但失败了。

public class Category {
String name;

Category parentCategory;

public Category(String name, Category parentCategory) {
super();
this.name = name;
this.parentCategory = parentCategory;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Category getParentCategory() {
return parentCategory;
}

public void setParentCategory(Category parentCategory) {
this.parentCategory = parentCategory;
}
}

主类

import java.util.ArrayList;
import java.util.List;

public class Main {

static Category root;
static Category category1;
static Category category11;
static Category category12;
static Category category2;
static Category category21;
static Category category22;

static Category category3;

public static void main(String[] args) {
root = new Category("root", null);

category1 = new Category("c1", root);
category11 = new Category("c11", category1);
category12 = new Category("c12", category1);

category2 = new Category("c2", root);
category21 = new Category("c21", category2);
category22 = new Category("c22", category2);

category3 = new Category("c3", root);

print(root);
}

public static void print(Category category){
List<Category> childList = getChild(category);

if(category.getParentCategory() == null){ //root
System.out.println("{title:"+category.getName()+",key:"+category.getName()+",");
}
else {
//if(childList.size()==0){
// System.out.println("{title:"+category.getName()+",key:"+category.getName()+",");
//}
// else {
System.out.println("children:[{title:"+category.getName()+",key:"+category.getName()+",");
// }
}

if(childList.size()==0) return;
for(Category child : childList){
print(child);
}
System.out.println("}]");
System.out.println("}");
}

public static List<Category> getChild(Category category){
List<Category> childList = new ArrayList<Category>();
if("root".equals(category.getName())){
childList.add(category1);
childList.add(category2);
childList.add(category3);

return childList;
}

if("c1".equals(category.getName())){
childList.add(category11);
childList.add(category12);

return childList;
}

if("c2".equals(category.getName())){
childList.add(category21);
childList.add(category22);

return childList;
}

return childList;// empty

}

}

我的输出不正确,应该是这样的:

 {title: "root", key: "root", 
children: [
{title: "c1", activate: true,
children: [
{title: "c11", key: "c11" },
{title: "c12", key: "c12" }
]
},
{title: "c2", select: true,
children: [
{title: "c21", key: "c21" },
{title: "c22", key: "c22" }
]
},
{title: "c3", hideCheckbox: true }
]
}

我的代码有错误,如何修复?或者使用这个设计,是否有可能得到这个结果?

谢谢

最佳答案

看起来输出是JSON。

你试过吗gson ?您不需要编写代码来序列化数据,gson 会为您将对象序列化为 JSON。

关于java输出一个格式的树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10826896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com