После того, как вам понадобился инструмент Diff для XML-файлов? Теперь я ищу инструмент сравнения для данных JSON.
Те же требования:
Эти два файла должны быть отмечены как «одинаковые»:
{
"errormessage": "",
"success": 1,
"items": [
{
"id": 20100,
"name": "AA3 met extra tekst2"
},{
"name": "Indirecte uren\\Ziekte",
"id": 34
}],
"type": "ttgetlistresult"
}
а также
{
"errormessage": "",
"items": [
{
"id": 34,
"name": "Indirecte uren\\Ziekte"
},{
"id": 20100,
"name": "AA3 met extra tekst2"
}],
"success": 1,
"type": "ttgetlistresult"
}
Мой онлайн-инструмент json diff с открытым исходным кодом должен помочь: http://json-diff.com
The order in JSON arrays is also irrelevant; swapped elements should be seen as 'no difference'.
. Как это сделать? Я вижу, что разница чувствительна к порядку. Есть ли вариант?При поиске ответа на этот вопрос, помимо варианта использования SemanticMerge в качестве моего предложенного ответа на «Инструмент Diff для XML-файлов» , я нашел еще один инструмент, который утверждает, что он контекстно-зависим для нескольких языков программирования: Compare++ , который хвастается следующий:
По сравнению с другими инструментами сравнения файлов, в Compare++ отличный процесс заключается в использовании механизма структурированного сравнения с учетом языка с двумя режимами сравнения («Ориентированный на код» и «Ориентированный на текст») для сравнения исходных файлов. Благодаря полному пониманию структур кода вы можете получить более точные результаты сравнения кода и многочисленные функции пост-сравнения.
...
Чтобы помочь вам просмотреть изменения структуры кода, предоставляется закрепляемая панель «Просмотр функций», в которой перечислены все изменения структуры, такие как функции, классы или пространства имен ( измененные , удаленные или добавленные )....
Структурированное сравнение с учетом языка для C/C++, Java, C#, Javascript, CSS, ...
- Compare++ анализирует исходные файлы со встроенным анализом для C/C++, C#, Java, php, html, Javascript, CSS3 и других языков, автоматически извлекает структурированное дерево кода и выделяет синтаксис.
- Он может НЕ ТОЛЬКО сравнивать содержимое файла, но также отображать и сообщать обо всех функциях, классах, изменениях пространств имен в параллельном представлении функций.
- В представлении функций вы можете настроить режим фильтра, чтобы отображались только измененные функции.
Программа не является бесплатной (29,95 долларов США за пользователя), но вы можете попробовать ее без лицензии в течение 30 дней.
Я не уверен, действительно ли он предполагает, что код перемещен, или это требует некоторого ручного труда, но он утверждает, что в представлении функций он может определить, был ли он изменен, удален или добавлен.
ПС! Кстати, он обрабатывает html, так что, возможно, он также может обрабатывать xml?
ППС! Вот инструмент в python для сравнения XML (который, возможно, можно было бы заменить на сравнение json (если преобразовать в etree)). Однако похоже, что это написано для проверки на равенство и не обеспечивает такой визуальной обратной связи.
Недавно я нашел json-delta по адресу https://pypi.python.org/pypi/json-delta/.
Вы можете установить на свой компьютер командой
pip install json-delta
Чтобы использовать его, просто используйте команду
json_diff -u file1.json file2.json
Это может быть полезно:
Это инструмент командной строки.
Онлайн-версию, которая также может загружать файлы с диска, см. здесь: http://www.jsondiff.com/
Вы можете использовать потрясающие онлайн-инструменты, такие как: - JSON Compare JSON Diff
Просто используйте диф. Как в
diff --unified file1.json file2.json
Холрой
Комфрик
Холрой
Мог говорит восстановить Монику
Николя Рауль
Шаг вверх