我试图用如下结构解析Json对象:
{
"something@email.com": {
"data1": {
"fullName": "Mr X Y",
"givenName": "X"
},
"data2": {
"age": "70",
"gender": "Male"
},
"data3": [
{
"typeId": "xyz",
"url": "xyz.com"
}
],
"status": 200,
},
"anotherThing@email.com": {
"data1": {
"fullName": "Mr A B",
"givenName": "A"
},
"data2": {
"age": "20",
"gender": "Male"
},
"data3": [
{
"typeId": "abc",
"url": "abc.com"
}
],
"status": 200,
}
}
我使用字段TempBean
创建了一个bean Map<String, Person>
,并将Person
作为另一个适当定义的bean来接受Json。
我试过了:
Gson.fromJson(data, TempBean.class)
但无法解析。还尝试了Map.class
并接受了Map<String, Person>
,但无法解析。
然而,当我使用时:
Type dataType = new TypeToken<Map<String, Person>>() {}.getType();
然后,
Map<String, Person> tempMap = Gson.fromJson(data, dataType);
我可以解析它..!
我想知道这两种方法有什么不同,我应该知道什么才能清楚地了解所有这些。