java - 使用 GSON 将包含数组的 JSON 对象转换为 ArrayList<POJO>

标签 java arrays json arraylist gson

我是 JSON 和 GSON 的新手,我正在从输入流中获取 JSON 提要,并将其放入自定义对象的数组列表中。 JSON 源包含一个对象,该对象包含多个对象的数组。它看起来像这样:

{ "container":[
    {"item_1":"item one"},
    {"item_2":"item two"},
    {"item_3":"item three"}
]}

我目前使用的是TypeTokenMap获取容器对象以及对象列表作为自定义对象的数组列表。就像这样:

InputStreamReader input = new InputStreamReader(connection.getInputStream());

Type listType = new TypeToken<Map<String, ArrayList<Item>>>(){}.getType();
Gson gson = new GsonBuilder().create();
Map<String, ArrayList<Item>> treeMap = gson.fromJson(input, listType);
ArrayList<Item> objects = treeMap.get("container");

input.close();

我想知道是否有办法跳过创建Map<String, ArrayList<Item>>的步骤,并直接从输入流转到 ArrayList<Item>使用GSON。只是为了整合我的代码,创建 map 似乎是一个不必要的步骤。

最佳答案

一种选择是定义一个具有 container 属性的包装类型,然后将 JSON 反序列化为该类型而不是 Map

public static class Wrapper {
    public List<Item> container;
}

Wrapper wrapper = gson.fromJson(input, Wrapper.class);
List<Item> objects = wrapper.container;

关于java - 使用 GSON 将包含数组的 JSON 对象转换为 ArrayList<POJO>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33437643/

相关文章:

java - 使用 Spring Data JPA Stream 获取数据

java - 实例化对象和子/父​​类的关系

python - Numpy 数组索引与其他数组会产生广播错误

arrays - Ada:用可变大小的数组打包记录

python - 将嵌套的 json(mixpanel api 原始数据导出)转换为 CSV? (最好在 Python 中)

json - 在 Jmeter 中,我试图发送一个 post rest api 请求,其中包含主体中的 json 并获得不受支持的媒体 415

Java SQL异常: Closed Resultset: next even though neither connection or resultset gets closed

java - 一起分享音频和文本

c++ - 在 C 中,free()'ing 动态分配的原始数组是必要的吗?

json - 如何使用 jq 1.5 删除 JSON 输入的哈希数组数组的哈希中的最后一个 "column"?