当前位置 : 主页 > 手机开发 > android >

android – Gson数组反序列化数组

来源:互联网 收集:自由互联 发布时间:2021-06-11
我有以下 JSON结构: [ { "id": 1, "subcategories": [ { "id": 2, "subcategories": [ ] }, { "id": 3, "subcategories": [ ] } ] }, { "id": 4, "subcategories": [ { "id": 5, subcategories: [ ] } ] }] 类别的模型类(为简单起见,省略了
我有以下 JSON结构:

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

类别的模型类(为简单起见,省略了一些像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始终为null.

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

对我有用.如果你想要一个ArrayList而不是一个Array:

new ArrayList<Category>(Arrays.asList(gson.fromJson(json, Category[].class)));
网友评论