我有一个POJO MyModel.java
:
public class MyModel {
String displayName;
String id;
StepDetails stepDetails;
}
在StepDetails.java
中,我有:
public class StepDetails {
V1 v1;
V2 v2;
}
在V1.java
和V2.java
中,两者相同,仅具有Map字段keyValuePairs
:
public class V1 {
Map<String, String> keyValuePairs;
}
我的json字符串示例:
{
"displayName": "My Name",
"id": "id123",
"stepDetails": {
"v1": {
"key1": "val1",
"key2": "val2"
},
"v2": {
"key1": "val1",
"key2": "val2"
}
}
}
当我尝试使用Gson将json字符串转换为模型时,MyModel
中的displayName
和id
字段填充得很好,但是v1
和v2
对象中的Map为空。这就是我目前正在做的事情:
MyModel myModel = new Gson().fromJson(jsonString, MyModel.class);
我看了几个SO帖子,但它们似乎都建议使用某种形式的TypeToken
,例如:
new Gson().fromJson(jsonString, new TypeToken<MyModel>(){}.getType());
我试过了,但Map字段仍然没有填充。
1条答案
按热度按时间wvt8vs2t1#
V1
和V2
类型是不必要的,因为在JSON中,您需要的字典直接与关键字“v1”和“v2”相关联。因此,字段v1
和v2
的类型应该是Map<String, String>
: