簡體   English   中英

如何使用 Gson 將 json 轉換為嵌套地圖?

[英]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.javaV2.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 字段仍未填充。

V1V2類型是不必要的,因為在 JSON 中,您想要的字典直接與鍵“v1”和“v2”相關聯。 因此,字段v1v2的類型應該是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM