Текстовое различие JSON

В рамках процесса выпуска я должен сравнить некоторые данные конфигурации JSON, используемые моим приложением . В качестве первой попытки я просто распечатал JSON и сравнил их (используя kdiff3 или просто diff).

Однако по мере роста этих данных kdiff3 путает различные части в выводе, делая добавления похожими на гигантские модификации , случайные удаления и т. д. Очень сложно понять, что отличает. Я пробовал и другие инструменты сравнения (meld, kompare, diff, некоторые другие), но все они имеют одну и ту же проблему.

Несмотря на все мои усилия, я могу ' Кажется, он форматирует JSON таким образом, чтобы его могли понять инструменты сравнения.

Пример данных:

[
  {
    "name": "date",
    "type": "date",
    "nullable": true,
    "state": "enabled"
  },
  {
    "name": "owner",
    "type": "string",
    "nullable": false,
    "state": "enabled",
  }
  ...lots more...
]

Вышеупомянутое, вероятно, не вызовет проблемы (проблема возникает, когда появляются сотни строк), но это суть сравниваемого.

Это всего лишь образец; полные объекты - это 4-5 атрибутов, а некоторые атрибуты содержат 4-5 атрибутов. Имена атрибутов довольно единообразны, но их значения сильно различаются.

В общем, кажется, что все инструменты diff путают закрывающий "}" с закрывающим "}" объектами. Кажется, я не могу избавить их от этой привычки.

Я пробовал добавлять пробелы, изменять отступ и добавлять строки «BEGIN» и «END» до и после соответствующих объектов, но инструмент все равно запутался.

14
задан Richard Levasseur 4 January 2011 в 23:19
поделиться