假设我需要使用从服务器获取的数据填充二进制搜索树。进一步说来自服务器的数据是节点的json数组
"parts":[{"id":1,"name":"apple"},{"id":12,"name":"orange"},{"id":21,"name":"pen"},{"id":214,"name":"kite"}]//where each {} represents a node
如何使用GSon将节点数组读入我的BST?
如果你记得BST有两个班级
public class BST{
private Note root;
}
public class Node{
String el;
Node left, right;
}
如果BST太难了,想象一下更简单
public class MyDataStructure{
private List<Part> partsList;
…
}
public class Part{
String el;
List<String> stuff;
}
如何在Android上使用GSon使用partsList
填充MyDataStructure?作为旁注,我宁愿帮助解决问题的MyDataStruction版本。
答案 0 :(得分:1)
好的..你可以用这个作为参考:
定义一个类pojo 和一个水果(是数组/列表/集合)
class Pojo {
@Override
public String toString() {
return "Pojo [parts=" + parts + "]";
}
private List<Fruits> parts;
}
class Fruits {
private int id;
private String name;
@Override
public String toString() {
return "[id=" + id + ", name=" + name + "]";
}
}
String json = "{\"parts\": [{\"id\":1,\"name\":\"apple\"},{\"id\":2,\"name\":\"pear\"},{\"id\":3,\"name\":\"kiwi\"}]}";
Gson g = new Gson();
Pojo p = g.fromJson(json, Pojo.class);
System.out.println(p);
向pojo添加一个setter getter,这样你就可以使用list了,为fruit类添加setter和getter,这样你就可以获得id和名字..
所以在pojo对象p中你可以做p.getList()并迭代元素
类似的东西:
Pojo p = g.fromJson(json, Pojo.class);
System.out.println(p);
for (Fruits f : p.getParts()) {
System.out.println(f.getId());
System.out.println(f.getName());
}