У меня есть два вложенных json-файла, загруженных в мое приложение NodeJS, второй - это просто более новая версия первого - с большим количеством ключей.
Первыйчто-то вроде этого
{
"something": {
"first": "one",
"second": "two"
},
"somethingelse": {
"one": "first string",
"two": "second string"
}
}
второй имеет больше ключей, чем первый, и некоторые значения отличаются
{
"something": {
"first": "one",
"second": "two",
"third": "this one changed "
},
"somethingelse": {
"one": "first string and this one changed",
"two": "second string",
"three": "third string"
}
}
Я хочу иметь возможность объединить эти два объекта json, не толькообновить ключи, которые представлены в первом, но также добавить все ключи, которые не существуют в нем и присутствуют во втором. Как я могу достичь этого, самого простого и понятного способа?
Я попробовал этот код
function matchjson(json1, json2) {
var combined_json = {};
var i = 0
// Deep copy of json1 object literal
for (var key in json1) {
combined_json[key] = json1[key];
}
for (var key in json2) {
// console.log(key)
if (!json1.hasOwnProperty(key)) combined_json[key] = json2[key]
}
return combined_json;
}
И он справляется со слиянием двух файлов вместено он всегда делает это только для ключей, присутствующих в этом объекте, и я понятия не имею, как я могу изменить его, чтобы он добавил даже несуществующие ключи.
Это то, что я хочу получить в конце, после объединения этих двух объектов json сверху:
{
"something": {
"first": "one",
"second": "two",
"third": "this one changed "
},
"somethingelse": {
"one": "first string and this one changed",
"two": "second string",
"three": "third string"
}
}