Как объединить дочерние объекты json с помощью json diff и merge?
У меня есть два файла JSON как таковые:
json1
{
"plans": {
"buildings": [
{
"floors": ["1" "2" "3" ]
},
{
"floors": ["1"]
}
]
}
}
JSON 2
{ "plans": {
"buildings": [
{
"floors": ["3" "5" "6" ]
},
{
"floors": []
}
]
}
}
Требуется JSON после объединения слияния
{
"plans": {
"buildings": [
{
"floors": ["1","2","3","5","6" ]
},
{
"floors": ["1"]
}
]
}
}
Как выполнить эту операцию, используя json diff и исправляя слияния, используя доступные инструменты.Я не хочу проходить через все дочерние узлы и проверять вручную.
2 ответа
У меня такая же проблема, как и у вас. Мое решение состоит в том, чтобы использовать патч JSON для создания патча из расширенного JSON, а затем отправить патч для применения в другой системе. Ищите дополнительную информацию на http://jsonpatch.com/. Они предоставляют репозиторий, в котором есть библиотека для каждого языка программирования.
Я создал легкий API для сравнения и слияния для этих сценариев. Открытый исходный код: https://github.com/ryanshane/JsonDiffMerge
Для массивов у них нет первичного ключа, поэтому вы получите повторяющиеся записи, если вы не изменили массив строк на объекты, например [{ id: "uid string", value: "3" }] вместо [" 3"].