我试图解析一个结构如下的 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,
}
}
我创建了一个bean TempBean
有一个字段Map<String, Person>
,与 Person
作为另一个被适当定义来接受 Json 的 bean。
我尝试过:
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);
我可以解析它..!
我想知道这两种方法有什么区别,以及我还应该知道什么才能清楚地了解这一切。
最佳答案
Google的官方解释是here .
关于java - 以class为参数的Gson.fromJson和以Type为参数的Gson.fromJson有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22818973/