本文介绍了数组反序列化的GSON阵列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下JSON结构:
[
{
标识:1,
子:
{
ID:2,
子:
]
},
{
ID:3,
子:
]
}
]
},
{
ID:4,
子:
{
ID:5,
子类别:
]
}
]
}
]
有关类别的模型类(如标题有些字段省略为简单起见),为反映JSON结构:
公共类分类{
INT标识= 0;
ArrayList的<类别>子类= NULL;
}
我试图解析与GSON库(2.2.4),有困难的时候反序列化内部数组ArrayList的:
GSON GSON =新GSON();
键入collectionType =新TypeToken< ArrayList的<类别>>(){}的getType()。
ArrayList的类别= gson.fromJson(JSON,collectionType);
Category.subCategories总是空。
解决方案
gson.fromJson(JSON,分类[]。类)
为我工作不错。如果你想要一个ArrayList而不是数组:
新的ArrayList<类别>(Arrays.asList(gson.fromJson(JSON,分类[]类)));
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阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!