3

我有以下 JSON 结构:

[
 {
  "id": 1,
  "subcategories": [
   {
    "id": 2,
    "subcategories": [
    ]
   },
   {
    "id": 3,
    "subcategories": [
    ]
   }
  ]
 },
 {
  "id": 4,
  "subcategories": [
   {
    "id": 5,
    subcategories: [
    ]
   }
  ]
 }
]

Category 的模型类(为简单起见,省略了一些字段,如 title),用于反映 JSON 结构:

public class Category {
    int id = 0;
    ArrayList<Category> subCategories = null;
}

我正在尝试使用 Gson 库(2.2.4)解析它,很难将内部数组反序列化为 arraylist:

Gson gson = new Gson();
Type collectionType = new TypeToken<ArrayList<Category>>(){}.getType();
ArrayList categories = gson.fromJson(json, collectionType);

Category.subCategories 始终为空。

4

2 回答 2

8
gson.fromJson(json, Category[].class)

对我很好。如果你想要一个 ArrayList 而不是一个数组:

new ArrayList<Category>(Arrays.asList(gson.fromJson(json, Category[].class)));
于 2013-08-12T14:38:05.520 回答
-1

尝试这个。

public class Category {
    int id = 0;
    ArrayList<Category> subCategories = new ArrayList<Category>()
}
于 2013-08-12T14:17:13.300 回答