我有两个JSON文件。我希望将它们组合成一个,使第二个文件具有更高的优先级。那就是:
foo
且2没有属性foo
,则3将具有值为1的属性foo
。foo
且1没有属性foo
,则3将具有属性foo
,其值为2。foo
,则3将具有属性foo
,其值为2。我需要在Java中这样做。最终的JSON对象将通过Google Gson反序列化为Java对象。
答案 0 :(得分:1)
你走了:
Gson gson = new Gson();
//read both jsons
Map<String, Object> json1 = gson.fromJson("<json1>", Map.class);
Map<String, Object> json2 = gson.fromJson("<json2>", Map.class);
//create combined json with contents of first json
Map<String, Object> combined = new HashMap<>(json1);
//Add the contents of first json. It will overwrite the values of keys are
//same. e.g. "foo" of json2 will take precedence if both json1 and json2 have "foo"
combined.putAll(json2);
gson.toJson(combined);