В рамках процесса выпуска я должен сравнить некоторые данные конфигурации 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» до и после соответствующих объектов, но инструмент все равно запутался.