Java with GSON - 仅将值反序列化为 JSON 字符串的 ArrayList

标签 java json arraylist deserialization gson

我的 JSON 响应字符串的结构如下:

{
    "1":{
        "data1":"1","data2":"test1", ...
    },
    "2":{
        "data1":"6","data2":"test2", ...
    },
    ...
}

我想要将放入 ArrayList<MyItem> 中。我使用GSON,通常我可以这样做:

ArrayList<MyItem> items = 
    gson.fromJson(jsonString, new TypeToken<ArrayList<MyItem>>() {}.getType());

问题是,它不起作用,因为我的 JSON 字符串以数字作为键,但我只想获取要放入 ArrayList 中的值。 (不幸的是,JSON 字符串不能由我自己更改)。我怎样才能有效地做到这一点?

最佳答案

我可能会将 JSON 反序列化为 java.util.Map,使用 the Map.values() methodMap 获取作为 Collection 的值,然后使用 the constructor that takes a Collection 创建一个新的 ArrayList

关于Java with GSON - 仅将值反序列化为 JSON 字符串的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15256646/

相关文章:

java - 为什么使用ArrayList但返回原始类型的方法要求该方法名称包含 “static”?

Java垃圾收集器在加载本体文件时无法清理内存

java - 为什么要使用 Objects.requireNonNull()?

java - 如何在java中从Json对象中获取元素

javascript - 我如何在 DOM 中实现无限滚动

Java字符串数组初始化循环结构内外

java - 嵌套 ArrayList 到单维

java - JDBC:我可以检测查询是否正在运行而不是排队吗?

java - 如何将变量从 AsyncTask 返回到 Activity 中的 OnCreate()

java - 我将如何使用java处理 "sub strings?"JSON文件?