Порівняння JSON (JSON Diff)
Порівнюйте два JSON-документи за структурою, а не за текстом: кожен доданий, видалений чи змінений ключ — на власному шляху, повністю у браузері.
Результат
Вставлення двох JSON-документів у звичайний текстовий диф-інструмент майже завжди дає хибну картину: переформатування, зміна відступів або просто інша послідовність серіалізації ключів обʼєкта підсвітить величезні шматки 'зміненого' тексту, навіть коли дані по суті однакові. Текстовий диф порівнює символи й рядки; він не знає, що {"a":1,"b":2} і {"b":2,"a":1} означають абсолютно те саме.
Цей інструмент спершу розбирає обидва входи як JSON, а потім рекурсивно обходить дві структури так, як дані насправді влаштовані: обʼєкти порівнюються за іменем ключа, а масиви — за позицією (порівняння масивів за індексом — свідомо простіший варіант за замовчуванням; режиму 'вважати цей масив невпорядкованою множиною за ключем-ідентифікатором' тут немає). Кожна відмінність показана на власному шляху, наприклад user.address.city, і класифікована як додано, видалено чи змінено, зі старим і новим значенням поруч, щоб не доводилося вгадувати, що саме змінилося.
Шляхи без змін за замовчуванням приховані, щоб велика відповідь з однією маленькою зміною не тонула в шумі, з перемикачем, який знову показує їх, коли потрібна повна картина. Опція 'сортувати ключі перед порівнянням' обходить і виводить ключі обʼєктів у канонічному алфавітному порядку — адже в JSON-обʼєкта від початку немає значущого порядку ключів, тож два обʼєкти з тими самими ключами й значеннями в іншій послідовності — це ті самі дані, і ця опція робить таке порівняння та результатний список явним і передбачуваним. Це точнісінько те налаштування, на якому побудовано пресети sorted та порівняння відповідей API в цьому інструменті.
Якщо потрібен класичний посторінковий рядковий диф для звичайного тексту, коду чи будь-якого контенту, що не є JSON, скористайтеся інструментом Порівняння текстів — він порівнює рядок за рядком і саме він доречний, коли відмінності пробілів і форматування дійсно важливі. Цей інструмент — саме для JSON, і, як і кожен інструмент цього сайту, він працює повністю у вашому браузері: нічого з вставленого нікуди не завантажується.