JSON Diff
Сравните два документа JSON и посмотрите структурное различие — что добавлено, удалено и изменено — полностью в вашем браузере.
Оба документа JSON разбираются и сравниваются локально в вашем браузере и никогда не загружаются, но избегайте вставки секретов или рабочих учётных данных в любые онлайн-инструменты.
Нужно изменить структуру результата? Попробуйте форматировщик JSON.
Об инструменте JSON Diff
JSON Diff сравнивает два документа JSON и показывает структурное различие вместо построчного текстового. Вставьте исходный JSON слева и изменённую версию справа — инструмент разбирает оба и сообщает, какие именно значения были добавлены, удалены, изменены или сменили тип, каждое с путём вида user.roles[2]. Поскольку сравнение семантическое, перестановка ключей объекта никогда не отображается как различие, поэтому вы видите только те изменения, которые действительно важны. Включите «Игнорировать порядок массива», чтобы сравнивать массивы как множества, или «Сортировку ключей», чтобы нормализовать обе стороны в режиме бок о бок. Инструмент создан для разработчиков, которые сравнивают ответы API, файлы конфигурации и фикстуры. Всё работает локально в вашем браузере, поэтому вставленный JSON не загружается на сервер и остаётся на вашем устройстве.
Возможности
- Семантическое сравнение, не зависящее от порядка ключей — переставленные ключи объекта не помечаются как изменения
- Сообщает о добавленных, удалённых, изменённых значениях и смене типа, каждое с путём вида user.roles[2]
- Отличает настоящую смену типа (1 и "1", null и значение) от обычного изменения значения
- Сводные счётчики показывают, сколько записей добавлено, удалено и изменено, с одного взгляда
- Опция «Игнорировать порядок массива» сравнивает массивы как мультимножества значений, а не по позиции
- Нормализация сортировкой ключей для аккуратного сравнения обоих отформатированных документов бок о бок
- Просмотр обоих красиво выведенных документов JSON бок о бок с подсветкой синтаксиса
- Скопируйте всё различие как текстовую сводку или очистите оба поля в один клик
Как использовать JSON Diff
- Вставьте исходный JSON в поле «Оригинал» слева.
- Вставьте обновлённый JSON в поле «Изменённый» справа.
- Прочитайте цветное различие: зелёный — добавлено, красный — удалено, янтарный — изменённые значения.
- Включите «Игнорировать порядок массива» или «Сортировку ключей», если порядок не должен считаться различием.
- Переключитесь в режим бок о бок, чтобы сравнить оба отформатированных документа, или скопируйте сводку различий.
Пример
Ввод
// Original
{ "name": "Ada", "roles": ["admin"], "active": 1 }
// Changed
{ "active": "1", "name": "Ada", "roles": ["admin", "editor"] }
Результат
+ roles[1]: "editor"
~ active: 1 → "1" (type changed)
Переставленные ключи игнорируются; добавлен новый элемент массива, а active меняется с числа на строку.
Частые ошибки и устранение неполадок
- Инструмент показывает «Invalid JSON on the left side» или для правой стороны. — Исправьте помеченный документ — ошибка называет, какая сторона не прошла и почему. Каждое поле должно содержать полное корректное значение JSON (объект, массив, строку, число, true/false или null).
- Перестановка элементов массива отображается как множество изменённых записей. — Включите «Игнорировать порядок массива», чтобы массивы сравнивались как множества значений; без этого массивы сравниваются по позиции и перестановка считается изменениями.
- 1 и "1" отмечены как разные, хотя выглядят одинаково. — Это смена типа: левое значение — число, а правое — строка. JSON Diff намеренно отделяет смену типа от изменения значения, чтобы её было легко заметить.
- Два объекта с одинаковыми ключами в разном порядке помечаются как изменённые. — Так быть не должно — сравнение не зависит от порядка ключей. Если вы это видите, у одной стороны, вероятно, есть лишний или пропущенный ключ либо отличается значение; проверьте указанный путь.
Часто задаваемые вопросы
- Игнорирует ли JSON Diff порядок ключей объекта?
- Да. Сравнение семантическое, поэтому два объекта с одинаковыми ключами и значениями равны независимо от порядка ключей. Сообщаются только реальные добавления, удаления и изменения значений, каждое со своим путём.
- Как JSON Diff обрабатывает массивы в другом порядке?
- По умолчанию массивы сравниваются по позиции, поэтому перестановка элементов отображается как изменения. Включите «Игнорировать порядок массива», чтобы сравнивать массивы как мультимножества, где помечаются только действительно добавленные или удалённые элементы.
- Почему 1 и "1" показаны как разные?
- Потому что их типы JSON отличаются — одно число, а другое строка. JSON Diff помечает это как смену типа, отдельно от обычного изменения значения, чтобы вы могли поймать случайно превращённые в строку числа в ответах API.
- Что означает путь вида user.roles[2] в различии?
- Он указывает на точное местоположение изменения: ключ user, затем его массив roles, затем элемент с индексом 2. Ключи объекта обозначаются точками, а элементы массива — индексами в скобках.
- Могу ли я сравнивать глубоко вложенный JSON и вложенные массивы?
- Да. JSON Diff рекурсивно обходит оба документа через вложенные объекты и массивы любой глубины, сообщая о каждом изменении на его полном пути, чтобы большие глубоко вложенные данные оставались читаемыми.
- Загружается ли куда-либо JSON, который я вставляю в JSON Diff?
- Нет. Оба документа разбираются и сравниваются полностью в вашем браузере, поэтому вставленный JSON — включая любые конфиденциальные поля — остаётся на вашем устройстве и никогда не отправляется на сервер.
Связанные инструменты
- Сравнить текст — Сравнивайте два текста построчно и видите добавления и удаления.
- Форматировщик JSON — Форматируйте, минимизируйте и проверяйте JSON с указанием места ошибок.
- Просмотрщик JSON — Текстовый и древовидный просмотр со сворачиванием/разворачиванием и путями узлов.
- Просмотр дерева JSON — Изучайте JSON в виде сворачиваемого типизированного дерева.
- YAML ↔ JSON — Преобразуйте YAML в JSON и обратно.
- Экранирование JSON — Экранируйте текст в строку JSON или разэкранируйте строку JSON в обычный текст.
- Сравнить PDF — Сравнивайте извлечённый текст двух PDF построчно.
- JSON в CSV — Преобразуйте массив плоских объектов JSON в CSV.
Все инструменты ArrayKit