GSON使用笔记(3) -- 如何反序列化出List

本文通过三个问题深入探讨GSON如何将JSON转换为List。遇到的问题包括GSON无法确定List的具体类型、fromJson方法无法推断数组元素类型以及Java泛型擦除导致的通用方法实现困难。解决方案涉及为List指定具体类型以及使用更复杂的方法来实现通用的jsonToList方法。
摘要由CSDN通过智能技术生成

本文通过3个问题来讨论如何使用GSON把JSON反序列化为List。

问题1

有这样两个类:

class MyObj {
    int x;
}

class MyList {
    List<MyObj> objList = new LinkedList<>();
}
那下面的测试能通过吗?

    @Test
    public void test1() {
        MyList myList = new Gson().fromJson("{objList:[]}", MyList.class);
        Assert.assertEquals(LinkedList.class, myList.objList.getClass());
    }

答案1

答案是,测试通不过!原因是GSON不知道objList的具体类型,因此只能选择默认的ArrayList。更详细的解释,可以参考这篇文章和ConstructorConstructor类的源代码。如果确实想让GSON创建LinkedList实例该怎么办呢?也简单,就是给objList一个更具体的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值