[英]How to convert json to nested Maps using Gson?
我有一個 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"
}
}
}
When I try to convert my json string to my model using Gson, the displayName
and id
fields in MyModel
are populated fine, but the maps inside the v1
and v2
objects are null. 這就是我目前正在做的事情:
MyModel myModel = new Gson().fromJson(jsonString, MyModel.class);
我看過幾個 SO 帖子,但它們似乎都建議使用某種形式的TypeToken
,例如:
new Gson().fromJson(jsonString, new TypeToken<MyModel>(){}.getType());
我試過了,但 map 字段仍未填充。
V1
和V2
類型是不必要的,因為在 JSON 中,您想要的字典直接與鍵“v1”和“v2”相關聯。 因此,字段v1
和v2
的類型應該是Map<String, String>
:
class MyModel {
private String displayName;
private String id;
private StepDetails stepDetails;
// getters...
}
class StepDetails {
private Map<String, String> v1;
private Map<String, String> v2;
// getters...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.