gpt4 book ai didi

java - 使用 GSON 将对象的 "list"(作为对象)解析为 JSON 中的整数对象( HashMap )

转载 作者:行者123 更新时间:2023-12-01 15:04:53 25 4
gpt4 key购买 nike

我有这样的json:

{
"1": {"id": 1, "first": "mymethod", "second" : [true, true, false]} ,
"4": {"id": 2, "first": "foo", "second" : [true, true, false]},
"67": {"id": 67, "first": "bar", "second": [true, true, false]},
"70": {"id": 70, "first": "foobar", "second" : [true, true, false]}
}

我正在尝试使用 gson (使用 Android)解析它,但由于某种原因我不能。我尝试了很多组合:HashMaps<Integer, TheClass> ; TheClass[] ; ArrayList<TheClass> ;等等...但我还是做不到!

一切,当然,在泛型的情况下使用类型的辅助类:

public class TheClassList extends whatever<TheClass> {}

gson.fromJson(jsonstr, TheClassList.class);

任何帮助将不胜感激?非常感谢。

PS:注意每个对象的“索引”。它是一个整数,但不是连续的(1,2,99...)。

非常感谢您的回答。

最佳答案

请注意,您的 JSON 是具有四个字段的单个对象,因为根处有大括号 {} 而不是方括号 []。因此,任何将其解析为列表或数组的尝试都将不起作用。

假设 TheClass 定义如下:

public class TheClass {

private int id;
private String first;
private boolean[] second; // List<Boolean> would work as well

}

然后可以使用以下内容进行解析:

TypeToken<Map<Integer, TheClass>> token = new TypeToken<Map<Integer, TheClass>>() {};
Map<Integer, TheClass> map = new Gson().fromJson(jsonstr, token.getType());

关于java - 使用 GSON 将对象的 "list"(作为对象)解析为 JSON 中的整数对象( HashMap ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13112438/

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