我有这种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 ......)。
非常感谢您的回答。
答案 0 :(得分:1)
注意你的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());
答案 1 :(得分:0)