JSON
JSON Diff / Compare
Порівняння двох JSON-документів — що додано, видалено чи змінено, з точним шляхом до кожної відмінності.
На відміну від звичайного текстового diff, JSON Diff порівнює два документи за структурою, а не за рядками: він розуміє, що порядок ключів в об’єкті не має значення, і показує точний шлях (наприклад, user.address.city) до кожної відмінності.
Як користуватися
- Вставте оригінальний JSON в одне поле, новий — у друге.
- Результат показує додані, видалені й змінені поля з точним шляхом до кожного та старим і новим значенням.
- Форматування та порядок ключів не впливають на результат — порівнюється лише сама структура даних.
Типові сценарії
- Перевірка, що саме змінилося у відповіді API між двома версіями чи двома запитами.
- Порівняння конфігураційних файлів (package.json, налаштувань застосунку) між гілками чи середовищами.
- Діагностика, чому тест не проходить: точне порівняння очікуваного та фактичного JSON-результату.
Що варто памʼятати
Елементи масивів зазвичай порівнюються за позицією (індексом) — вставка одного елемента на початку може показати всі наступні як «змінені», хоча по суті вони лише зсунулися.
Порівняння структурне, а не текстове — два JSON з однаковими даними, але різним форматуванням чи порядком ключів, вважаються ідентичними.
Стаття про цей інструмент: JSON Diff: чим структурне порівняння відрізняється від текстового
Часті запитання
Що показує цей інструмент?
Порівнює два JSON-документи й показує, що додано, видалено чи змінено, з точним шляхом до кожної відмінності — зручно, щоб побачити, що саме змінилось між двома версіями конфігурації, відповіді API тощо.
Чому переставлені елементи масиву показані як "змінені"?
Порівняння масивів зазвичай відбувається за позицією (індексом), а не за вмістом. Якщо елементи однакові, але йдуть у іншому порядку, diff покаже їх як зміну, а не як переміщення.
Чи передаються документи на сервер для порівняння?
Ні — порівняння повністю виконується у браузері на JavaScript, дані не залишають ваш пристрій.
Чи враховується порядок ключів об’єкта в результаті порівняння?
Ні, структурне порівняння дивиться лише на самі дані — наявність поля, його значення й тип. Порядок ключів у JSON-об’єкті семантично не значущий, тому не впливає на результат.
Чи можна порівнювати елементи масиву не за позицією, а за ідентифікатором?
Це залежить від конкретного алгоритму порівняння. Прості diff-інструменти завжди звіряють елементи масиву за індексом; складніші намагаються зіставити об’єкти за спільним полем на кшталт id, щоб коректніше показати вставку чи видалення.