欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

gson 多層json轉map

劉姿婷1年前10瀏覽0評論

gson是Google開源的一個Java開發庫,用于將Java對象轉換為JSON數據以及將JSON數據轉換為Java對象。在處理JSON數據時,我們可能會遇到一些復雜的JSON結構,比如多層嵌套的JSON對象,這時候我們需要將它們轉換成對應的Map對象來進一步處理。

在gson中,我們可以使用TypeToken類來指定要轉換的類型。對于多層嵌套的JSON對象,我們可以通過遞歸的方式將它們轉換成Map對象。

Type type = new TypeToken>(){}.getType();
MapresultMap = new Gson().fromJson(jsonStr, type);

上述代碼中,我們使用了TypeToken類,將要轉換的類型指定為Map。然后通過fromJson()方法將JSON字符串轉換為Map對象。

如果JSON字符串中存在多層嵌套的JSON對象,我們可以在轉換時使用遞歸的方式,將它們轉換為對應的Map對象。

private MapjsonToMap(JsonObject json) {
Mapmap = new HashMap<>();
for (Map.Entryentry : json.entrySet()) {
String key = entry.getKey();
JsonElement value = entry.getValue();
if (value instanceof JsonObject) {
map.put(key, jsonToMap((JsonObject) value));
} else if (value instanceof JsonArray) {
map.put(key, jsonToList((JsonArray) value));
} else {
map.put(key, value.getAsString());
}
}
return map;
}
private ListjsonToList(JsonArray json) {
Listlist = new ArrayList<>();
for (JsonElement value : json) {
if (value instanceof JsonObject) {
list.add(jsonToMap((JsonObject) value));
} else if (value instanceof JsonArray) {
list.add(jsonToList((JsonArray) value));
} else {
list.add(value.getAsString());
}
}
return list;
}

上述代碼中,我們定義了兩個私有方法jsonToMap()和jsonToList(),用于將JSON對象轉換為Map對象或者List對象。在jsonToMap()方法中,我們遍歷JSON對象的每個屬性,如果屬性值為JSON對象或者JSON數組,就遞歸調用對應的方法轉換成Map對象或者List對象,最終將Map對象返回。

通過使用gson庫,我們可以方便地將多層嵌套的JSON對象轉換成Map對象,方便后續處理。