数组反序列化的Gson数组 [英] Gson Array of Array Deserialization

查看:41
本文介绍了数组反序列化的Gson数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下 JSON 结构:

<预><代码>[{身份证":1,子类别":[{身份证":2,子类别":[]},{身份证":3,子类别":[]}]},{身份证":4,子类别":[{身份证":5,子类别: []}]}]

类别的模型类(为简单起见,省略了标题等字段),用于反映 JSON 结构:

公共类类别{整数 ID = 0;ArrayList<类别>子类别 = 空;}

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

Gson gson = new Gson();类型 collectionType = new TypeToken>(){}.getType();ArrayList 类别 = gson.fromJson(json, collectionType);

Category.subCategories 始终为空.

解决方案

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

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

new ArrayList(Arrays.asList(gson.fromJson(json, Category[].class)));

I've the following JSON structure:

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

The model class for a Category (some fields like title are omitted for simplicity), for reflecting JSON structure:

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

I'm trying to parse that with Gson library (2.2.4), having hard times deserializing inner array to arraylist:

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

Category.subCategories is always null.

解决方案

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

worked good for me. If you want an ArrayList instead of an Array:

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

这篇关于数组反序列化的Gson数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆