import org.json.JSONException;
import org.json.JSONObject;
/**
* json深度合并
*
**/
public class JsonUtils {
/**
* 深度拷贝
* Merge "source" into "target". If fields have equal name, merge them recursively.
*
* @return the merged object (target).
*/
public static JSONObject deepMerge(JSONObject source, JSONObject target) throws JSONException {
for (String key : JSONObject.getNames(source)) {
Object value = source.get(key);
if (!target.has(key)) {
// new value for "key":
target.put(key, value);
} else {
// existing value for "key" - recursively deep merge:
if (value instanceof JSONObject) {
JSONObject valueJson = (JSONObject) value;
deepMerge(valueJson, target.getJSONObject(key));
} else {
target.put(key, value);
}
}
}
return target;
}
}
【java】json深度合并(深度拷贝)
最新推荐文章于 2024-08-29 03:57:12 发布
该代码实现了一个名为`JsonUtils`的类,其中包含一个`deepMerge`方法,用于将源`JSONObject`深度合并到目标`JSONObject`中。如果目标对象已有相同键,则递归地进行深度合并;若目标对象没有该键,则直接添加。
摘要由CSDN通过智能技术生成