树型结构转Json遇到的问题,写入文件为空"/>
使用gson将复杂的树型结构转Json遇到的问题,写入文件为空
某个项目需要用到一个较为复杂的数据结构。定义成一个树型链表。
public class TreeNode {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPartType() {
return partType;
}
public void setPartType(String partType) {
this.partType = partType;
}
public List<TreeNode> getChildren() {
return children;
}
public void setChildren(List<TreeNode> children) {
this.children = children;
}
private String partType;
private List<TreeNode> children;
public TreeNode(String name,String partType)
{
this.name=name;
this.partType=partType;
this.children=new ArrayList<TreeNode>();
}
@Override
public String toString() {
return "TreeNode [name=" + name + ", partType=" + partType + ", children=" + children + "]";
}
}
创建一个存人Tree Node类的List,原本打算直接将此转成json文件保存,以便以后恢复成list<TreeNode>。结果转换出错,定义一个类。将此放进去:
public class TreeNodeList {
private ArrayList<TreeNode> list;
public void setList(ArrayList<TreeNode> list) {
this.list = list;
} //不能少
public ArrayList<TreeNode> getList() {
return list;
} //不能少
public TreeNodeList(ArrayList<TreeNode> l)
{
list=l;
}
public TreeNodeList()
{} //不能少
}
然后再转,再写就ok了。注意,注释了“不能少”的是所有属性都要提供get和set方法,还要提供无参构造器。否则转不成功。
多谢杨同学!!!
附简单写入的代码,希望帮到遇到同样问题的人
public static void writeJson(String jsonFilePath,ArrayList<TreeNode> treeNodeList)
{
Gson gson=new Gson();
TreeNodeList tnList=new TreeNodeList(treeNodeList);
String result= gson.toJson(tnList);
try {
FileWriter writer=new FileWriter(jsonFilePath);
writer.write(result);
writer.flush();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
更多推荐
使用gson将复杂的树型结构转Json遇到的问题,写入文件为空
发布评论