gpt4 book ai didi

java - 如何在 Gson 中制作自定义列表反序列化器?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:17 26 4
gpt4 key购买 nike

我需要反序列化一个包含数组的 Json 文件。我知道如何反序列化它以便获得 List 对象,但在框架中我使用的是自定义列表对象,该对象未实现 Java List 接口(interface)。我的问题是,如何为自定义列表对象编写反序列化程序?

编辑:我希望反序列化器是通用的,这意味着我希望它对每一种列表都有效,比如 CustomList<Integer> , CustomList<String> , CustomList<CustomModel>不仅仅是一种特定类型的列表,因为为我使用的每种类型制作反序列化器会很烦人。

最佳答案

这是我想出的:

class CustomListConverter implements JsonDeserializer<CustomList<?>> {
public CustomList deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext ctx) {
Type valueType = ((ParameterizedType) typeOfT).getActualTypeArguments()[0];

CustomList<Object> list = new CustomList<Object>();
for (JsonElement item : json.getAsJsonArray()) {
list.add(ctx.deserialize(item, valueType));
}
return list;
}
}

这样注册:

Gson gson = new GsonBuilder()
.registerTypeAdapter(CustomList.class, new CustomListConverter())
.create();

关于java - 如何在 Gson 中制作自定义列表反序列化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41418160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com