Как часть процессов выпуска, мне приходится сравнивать некоторые данные конфигурации JSON, используемые моим приложением. В качестве первой попытки я просто красиво напечатал JSON и разделил их (используя kdiff3 или просто diff).
Однако, поскольку эти данные выросли, kdiff3 смешивает разные части в выходе, делая дополнения похожими на гигантские модификации, нечетные удаления и т.д. Очень сложно понять, что другое. Я также пробовал использовать другие инструменты для сравнения (meld, kompare, diff, несколько других), но все они имеют одинаковую проблему.
Несмотря на все мои усилия, я не могу отформатировать JSON таким образом, чтобы инструменты diff могли понять.
Пример данных:
[
{
"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" до и после соответствующих объектов, но инструмент все еще запутывается.