色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java json對象合并

錢淋西1年前7瀏覽0評論

JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,具有簡潔、易讀、易解析等特點。在Java中,有許多開源的JSON庫可供使用,例如Gson、Jackson、Fastjson等等。本文將介紹一種使用Java的JSONObject合并兩個或多個JSON對象的方法。

public static JSONObject merge(JSONObject... jsonObjects) {
JSONObject result = new JSONObject();
for (JSONObject jsonObject : jsonObjects) {
for (String key : jsonObject.keySet()) {
Object value = jsonObject.get(key);
if (result.containsKey(key)) {
Object oldValue = result.get(key);
if (oldValue instanceof JSONObject && value instanceof JSONObject) {
result.put(key, merge((JSONObject) oldValue, (JSONObject) value));
} else if (oldValue instanceof JSONArray && value instanceof JSONArray) {
result.put(key, merge((JSONArray) oldValue, (JSONArray) value));
} else {
result.put(key, value);
}
} else {
result.put(key, value);
}
}
}
return result;
}
private static JSONArray merge(JSONArray array1, JSONArray array2) {
JSONArray result = new JSONArray();
result.addAll(array1);
result.addAll(array2);
return result;
}

上述代碼中的merge方法接收兩個或多個JSONObject對象,并將它們合并到一個新的JSONObject中。該方法內(nèi)部使用遞歸算法,遍歷每個JSONObject的所有key及其對應的value值。如果在合并過程中遇到同名的key,則需要將其對應的value值合并。如果某個value值也是一個JSONObject或JSONArray,遞歸調(diào)用merge方法進行合并。如果該value值為普通類型(例如String、Number、Boolean等),則直接使用新的value值替換舊的值。

另外,當兩個JSONArray對象需要合并時,我們直接調(diào)用JSONArray的addAll方法將兩個數(shù)組合并到一個新的數(shù)組中。

總的來說,這種使用Java的JSONObject合并兩個或多個JSON對象的方法非常簡單、高效,并且具有良好的可擴展性。如果您在項目中需要合并JSON對象,可以嘗試使用本文介紹的方法。