将json对象与java合并

时间:2016-03-03 22:55:13

标签: java json

我有两个JSON文件。我希望将它们组合成一个,使第二个文件具有更高的优先级。那就是:

  • 如果1具有属性foo且2没有属性foo,则3将具有值为1的属性foo
  • 如果2具有属性foo且1没有属性foo,则3将具有属性foo,其值为2。
  • 如果1和2都具有属性foo,则3将具有属性foo,其值为2。

我需要在Java中这样做。最终的JSON对象将通过Google Gson反序列化为Java对象。

1 个答案:

答案 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);