0
点赞
收藏
分享

微信扫一扫

Java合并json对象


1、引入依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>

2、合并json对象

/**
* 合并JSON对象,用source覆盖target,返回覆盖后的JSON对象,
*
* @param source JSONObject
* @param target JSONObject
* @return JSONObject
*/
public static JSONObject jsonMerge(JSONObject source, JSONObject target) {
// 覆盖目标JSON为空,直接返回覆盖源
if (target == null) {
return source;
}

for (String key : source.keySet()) {
Object value = source.get(key);
if (!target.containsKey(key)) {
target.put(key, value);
} else {
if (value instanceof JSONObject) {
JSONObject valueJson = (JSONObject) value;
JSONObject targetValue = jsonMerge(valueJson, target.getJSONObject(key));
target.put(key, targetValue);
} else if (value instanceof JSONArray) {
JSONArray valueArray = (JSONArray) value;
for (int i = 0; i < valueArray.size(); i++) {
JSONObject obj = (JSONObject) valueArray.get(i);
JSONObject targetValue = jsonMerge(obj, (JSONObject) target.getJSONArray(key).get(i));
target.getJSONArray(key).set(i, targetValue);
}
} else {
target.put(key, value);
}
}
}
return target;
}

举报

相关推荐

0 条评论