這可能有點長,所以請耐心等待。在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