Как объединить дочерние объекты 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"].

Другие вопросы по тегам