在Java開發中,處理JSON數據是很常見的操作。有時候我們需要將兩個JSON數據合并成一個JSON數據,本文將為大家介紹Java如何實現兩個JSON數據的合并。
以下是合并兩個JSON數據的Java代碼:
JSONObject json1 = new JSONObject("{'name':'張三', 'age':18, 'gender':'male', 'hobby':['reading', 'swimming']}"); JSONObject json2 = new JSONObject("{'age':19, 'profession':'student', 'hobby':['dancing', 'music']}"); JSONObject mergedJson = new JSONObject(json1, JSONObject.getNames(json1)); mergedJson.merge(json2, new BiFunction() { @Override public Object apply(String key, Object oldValue, Object newValue) { if (oldValue instanceof JSONArray && newValue instanceof JSONArray) { JSONArray oldArray = (JSONArray) oldValue; JSONArray newArray = (JSONArray) newValue; for (int i = 0; i< newArray.length(); i++) { oldArray.put(newArray.get(i)); } return oldArray; } else { return newValue; } } });
上述代碼中,我們使用了merge()
方法來合并兩個JSON數據,其中第一個JSON數據是我們要合并的目標數據,第二個JSON數據則是合并的源數據。
在合并過程中,我們使用了一個Lambda表達式BiFunction
,從中我們可以看到它包含三個參數,分別表示當前JSON數據的key、當前JSON數據的value、源JSON數據的value。當遇到類型為JSONArray的value時,我們需要將源JSON數據中的JSONArray逐條添加到目標JSON數據的JSONArray中。最后,合并后的JSON數據存儲在mergedJson
對象中。
這樣,我們就介紹了Java如何實現兩個JSON數據的合并。希望對大家有一定的幫助。