这可能有点长,所以请耐心等待。在Android中使用GSON对JSON串进行反序列化
我正在开发Android项目。我有我需要反序列化为代表的JSON结构对象JSON字符串,JSON字符串是类似下面的东西:
{"parents":[
{"parent":{
"id":1,
"name":"Sam",
"childs":[
{
"child":{
"id":1,
"name":"Alice",
"books":[
{
"book":{
"id":1,
"name":"Alice in Wonderland"
}
}
]
}
}
]
}
}
]}
注意数组有重复的值(即许多父母和许多孩子),我只是在这里放一行以使其缩短。
有了这个,我创建的类,以容纳结构:我会创建一个共同的类,以适应重复属性
public class Containers{
private List<Parent> parents;
//setter and getter..
}
public static class Parent extends CommonItem {
private List<Child> childs;
//setter and getter..
}
public static class Child extends CommonItem {
private List<Book> books;
//setter and getter..
}
public class CommonItem{
private int id;
private String name;
//setter and getter
}
注。 下面是一个使用GSON我如何解析它们:
Gson gson = new Gson();
Containers parents = gson.fromJson(jsonString, Containers.class);
分析后(也就是没有错误),我尝试检索的对象。父母列表中的对象数量是正确的(即,JSON字符串中有5个父母,父母列表中有5个父对象)。但是,它们的所有属性都不存在,并且子树也缺失。
我想了很多配置,包括删除扩展类,并把所有的id和名称在各自的类,但结果仍然是相同的。
任何人都可以给我任何指针,我哪里出错了?
感谢一堆!
OPS ......有另一个类的书,我没放,但它遵循的模式为儿童如何。此外,所有三类父,子和书都是容器的内部类。 – ipohfly 2012-02-29 11:38:32