JSON
JSON Diff / Compare
Сравнение двух JSON-документов — что добавлено, удалено или изменено, с точным путём к каждому отличию.
Unlike a plain text diff, JSON Diff compares two documents by structure rather than by line: it understands that key order in an object doesn't matter, and it shows the exact path (e.g. user.address.city) to every difference.
How to use it
- Paste the original JSON into one field and the new version into the other.
- The result lists added, removed, and changed fields with the exact path to each and its old and new value.
- Formatting and key order don't affect the result — only the underlying data structure is compared.
Common uses
- Checking exactly what changed in an API response between two versions or two requests.
- Comparing configuration files (package.json, app settings) across branches or environments.
- Debugging a failing test by precisely comparing the expected and actual JSON output.
Things to keep in mind
Array elements are usually compared by position (index) — inserting one element near the start can show every following item as "changed", even though they merely shifted.
The comparison is structural, not textual — two JSON documents with identical data but different formatting or key order are treated as the same.
Статья об этом инструменте: JSON Diff: чем структурное сравнение отличается от текстового
Часто задаваемые вопросы
Как этот инструмент решает, что считать «отличием»?
Он рекурсивно сравнивает обе структуры JSON ключ за ключом и индекс за индексом, показывая добавленные, удалённые и изменённые значения — порядок ключей объекта не важен, но порядок элементов массива имеет значение.
Почему изменение порядка элементов массива отображается как изменение?
Массивы JSON упорядочены, поэтому перемещение элемента с индекса 2 на индекс 0 считается удалением и повторным добавлением, а не отсутствием изменений, даже если значения идентичны.
Отправляются ли мои данные JSON куда-либо для вычисления различий?
Нет. Сравнение выполняется полностью в вашем браузере — ни один файл не загружается на сервер.
Учитывается ли порядок ключей объекта в результате сравнения?
Нет, структурное сравнение смотрит только на сами данные — наличие поля, его значение и тип. Порядок ключей в JSON-объекте семантически не значим, поэтому не влияет на результат.
Можно ли сравнивать элементы массива не по позиции, а по идентификатору?
Это зависит от конкретного алгоритма сравнения. Простые diff-инструменты всегда сверяют элементы массива по индексу; более сложные пытаются сопоставить объекты по общему полю вроде id, чтобы корректнее показать вставку или удаление.