我在使用 GSon 进行 json 反序列化时遇到了一些困难,希望有人能帮助我。
我想反序列化以下 json 片段:
{
"fieldA": "valueA",
"myCollection": {
"AnotherClass": [
{
"objectAfieldA": "valueB",
"objectAfieldB": "valueC"
},
{
"objectAfieldA": "valueD",
"objectAfieldB": "valueE"
}
]
}
}
对应的整体类有以下字段:
...
String fieldA;
List<AnotherClass> = new ArrayList<AnotherClass>();
....
现在,我的问题是当我反序列化时,使用 fromJson(jsonSample, resultContainer.class)
, 没有 List<T>
元素,一切都很好,但我得到一个 NullPointerException
当我包含包含的列表时。我已经阅读了如何处理泛型类型的集合以及 TypeToken
的使用。 ,但是当我的 Collection 是另一个类(class)的一部分时,我无法应用这些知识……
如果能帮我解决这个问题,我真的很感激。
最佳答案
反序列化未命名 JSON 数组的解决方案非常简单:
List<resultContainer> lres = gson.fromJson(new FileReader("input.json"), new TypeToken<List<resultContainer>>(){}.getType());
关于java - 使用 Gson 反序列化通用集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402897/