Java 使用GSON序列化ArrayList(泛型类型)

Java 使用GSON序列化ArrayList(泛型类型),java,json,generics,serialization,gson,Java,Json,Generics,Serialization,Gson,我想用Google的GSON库将java对象序列化为JSON。它可以正常工作,除非出现ArrayList。GSON无法处理ArrayList的泛型类型@Yavor Georgiev描述了一个使用registerSerializer(…)方法的解决方案,但新版本中不存在这种方法 gson.registerSerializer(ArrayList.class, new CollectionSerializer<Object>()); 您是否尝试注册适配器 new GsonBuilder

我想用Google的GSON库将java对象序列化为JSON。它可以正常工作,除非出现ArrayList。GSON无法处理ArrayList的泛型类型@Yavor Georgiev描述了一个使用registerSerializer(…)方法的解决方案,但新版本中不存在这种方法

gson.registerSerializer(ArrayList.class, new CollectionSerializer<Object>());

您是否尝试注册适配器

new GsonBuilder().registerTypeAdapter(Object.class, new JsonSerializer<Object>() {
            @Override
            public JsonElement serialize(Object src, Type typeOfSrc, JsonSerializationContext context) {
                return context.serialize(src);
            }
        })
new GsonBuilder().registerTypeAdapter(Object.class,new JsonSerializer()){
@凌驾
公共JsonElement序列化(对象src,类型typeOfSrc,JsonSerializationContext){
返回context.serialize(src);
}
})

请参考这一点-在他的例子中,他可以直接指定类型,因为他只想将对象
src
一样转换为JSON(src,type)
。但是在我的例子中,对象
data
没有类型
ArrayList
,它是
data
。请阅读GsonBuilder上的api。registerTypeAdapter方法似乎很有前途,但我不确定您是否已经尝试过RegisterSerializer(ArrayList.class,new CollectionSerializer());我想也是这样
new GsonBuilder().registerTypeAdapter(Object.class, new JsonSerializer<Object>() {
            @Override
            public JsonElement serialize(Object src, Type typeOfSrc, JsonSerializationContext context) {
                return context.serialize(src);
            }
        })