答案 0 :(得分:2)
类型java.util.Collections$CheckedRandomAccessList
是由另一个列表的Collections.checkedList
生成的包装器,用于确保添加到列表中的任何内容与相应的类型签名匹配。除非您有某种方式指定如何创建支持列表和它应该检查的类型(也称为java.lang.Class
的实例),否则没有足够的信息来构造一个。
要解决此问题,可以将"java.util.Collections$CheckedRandomAccessList"
更改为"java.util.ArrayList"
,并使用适当的防护类型调用Collections.checkedList
反序列化的结果。
为防止问题再次发生,如果您的列表不是instanceof ArrayList<?>
,可以在序列化之前执行以下:
List<Object> mySerializableList = new ArrayList<Object>(myList);
答案 1 :(得分:0)
你拥有的JSON看起来不像简单的集合,而是像一个具有属性和集合的bean。所以这可能需要改变。 无论使用何种库,您的JSON都必须与要映射的对象匹配。
如果你无法让它与Gson一起工作,那么你可以尝试使用其他更强大的数据绑定功能。