Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

java - merge two nested org.json.JSONObject

I have two JSON object from org.json: the first one is

json1 = {a: {b : {c: val1} } }

and the second is

json2= {a {b: {c2: val2 } } }

is there any way to merge this two object to have one object like this:

result = {a: { b: {c: val1, c2: val2 } } }

I don't have any idea about the keys of the two objects, so i need to loop dynamically over these objects and do the merge. Is there any built in method to do this trick. Thanks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
static JSONObject merge(JSONObject obj1, JSONObject obj2) {
    obj2.forEach((k2, v2) -> obj1.merge(k2, v2, (v1, _v2) ->
            v1 instanceof JSONObject && _v2 instanceof JSONObject
                    ? merge((JSONObject)v1, (JSONObject)_v2) : "conflict!!"));
    return obj1;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...