java - 使用 Gson 反序列化通用集合

标签 java json gson

我在使用 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/

相关文章:

java - 如何从 Hibernate Query 中获取 Map 对象

javascript - 动态添加带有jquery错误的元素

json - Spark : How to parse a Array of JSON object using Spark

java - Map<Object, Object> 的序列化和反序列化

java - Spring - 未创建 CrudRepository

java - 如何在java中将10位数字文本解析为整数

java - Netbeans - Java 应用程序可以对 'Stop' 使用react吗?

android - 将数据从 Android 应用传输到外部数据库

java - 解析 JSON - 无法从 JsonObject 获取 boolean 值

java - 如何用Gson单独提取json字符串对象