Pugofka / Tools / Код
Сравнение двух JSON
Сравните два JSON-документа и получите список отличий по путям объектов.
Когда пригодится сравнение двух json
Сравнение двух JSON полезно при обновлении API, смене конфигурации и проверке экспорта каталога. Вставьте старую и новую версии. Инструмент разбирает обе структуры и показывает пути изменённых, добавленных и удалённых значений. Путь $.price указывает на поле верхнего уровня, а элементы массива отображаются с индексом. Порядок ключей объекта не считается отличием: в JSON он обычно не должен определять смысл. Порядок элементов массива, напротив, сохраняется и может дать много различий после перестановки.
Важно учитывать, что сравнение идёт после JSON.parse. Большие числа за пределами точности JavaScript могут округлиться, а повторные ключи объекта будут перезаписаны последним значением. Если вам нужно сохранить исходные лексемы чисел или найти дубли ключей, используйте JSON-форматировщик сайта: его токенизатор не меняет значения. Для финансовых выгрузок с точными десятичными суммами сначала проверьте формат чисел, а затем решайте, подходит ли структурное сравнение.
Как пользоваться: сравнение двух json
Вставьте старый и новый JSON. Инструмент перечислит добавленные, удалённые и изменённые значения.
Начните с кнопки «Вставить пример», чтобы увидеть ожидаемый формат ввода. Затем замените демонстрационные значения своими данными в полях «Исходные данные, Второй набор данных». Нажмите «Получить результат». Если формат неверный, инструмент покажет ошибку на русском языке; исправьте исходные данные и повторите действие.
Готовый результат можно скопировать одной кнопкой или скачать в файл json-diff.txt. Проверьте итог перед публикацией на рабочем сайте: инструмент видит только переданные ему данные и не знает особенностей вашего проекта. Для больших выгрузок удобно сначала обработать небольшой фрагмент и убедиться, что структура результата подходит дальнейшему процессу.
Пример входных данных и результата
Изменение price со 100 на 120 появится по пути $.price.
{"price":100,"stock":5}
{"price":120,"stock":5}Пример показывает форму исходных данных. Результат создаётся только после запуска виджета, поэтому вы можете изменить пример и сразу увидеть, как это влияет на вывод. Если вы работаете с клиентским сайтом, используйте обезличенный образец для первой проверки, затем переходите к полному файлу.
Какие ошибки проверить вручную
Сравнение выполняется по разобранным значениям JSON: порядок ключей не считается изменением, повторные ключи теряют смысл.
Технически корректный результат ещё не означает, что он подходит бизнес-логике сайта. Например, URL может быть синтаксически верным, но вести на удалённую страницу; XML может быть хорошо сформированным, но не соответствовать настройкам конкретной площадки. После автоматической проверки откройте итог в целевой системе или браузере и сравните его с ожидаемым поведением.
Если инструмент сообщает об ошибке, начните с названного поля или строки. При обработке файлов проверьте кодировку, переносы строк, кавычки и спецсимволы. Они часто попадают в данные при экспорте из Excel, CMS или интеграции и могут менять смысл результата.
Практические ограничения и следующий шаг
При отладке интеграции начните с небольшой пары ответов одного и того же объекта. Если отличаются десятки полей, отделите ожидаемые изменения времени и идентификаторов от настоящих регрессий. Инструмент ограничивает вывод первыми 500 отличиями, чтобы браузер не зависал на огромной структуре. Для автоматического контроля в CI лучше составить схему и правила игнорирования служебных полей; этот виджет предназначен для ручного разбора конкретной пары документов.
Для повторяющихся задач сохраните входной пример и ожидаемый результат как проверочный сценарий. После обновления сайта или формата данных прогоните его снова: небольшое изменение шаблона экспорта иногда меняет поведение без явной ошибки. Если результат используется в производственной системе, проверьте не только синтаксис, но и последствия на нескольких реальных записях. При публикации конфигурации или метатегов сравните исходный HTML и ответ сервера с тем, что вы видите в форме.
Как применить результат: сравнение двух json
При сравнении ответа API учитывайте поля, которые меняются при каждом запросе: время генерации, ID трассировки, срок действия ссылки. Они могут создавать шум, хотя бизнес-данные совпадают. Сначала сравните небольшую стабильную запись и убедитесь, что пути в отчёте соответствуют ожиданию. Если после релиза изменился тип числа на строку, инструмент покажет это как значение по одному пути; для клиента API такая правка может быть критичнее, чем изменение самого числа. Проверяйте контракт, а не только количество отличий.
Для больших массивов порядок элементов имеет значение в этом инструменте. Если сервер лишь отсортировал товары иначе, отчёт покажет множество изменений по индексам. Сопоставление элементов по SKU требует специализированного diff с ключом, например сравнения двух CSV-каталогов; не пытайтесь заключить по длинному списку индексов, что все товары изменились. После ручного анализа сохраните пару исходных документов как регрессионную фикстуру. Тогда следующая смена формата будет обнаружена автоматическим тестом, а не только глазами в браузере.
Проверка перед публикацией
Сохраните исходный пример и результат рядом с задачей, чтобы при следующем обновлении можно было повторить проверку. Откройте итоговый файл в целевой системе и сравните не только отсутствие ошибки, но и число обработанных записей, конечные адреса, отображение кириллицы и поведение на мобильном экране, если результат используется в интерфейсе. Для конфигурации сервера сначала примените изменения на тестовом окружении и выполните запрос к реальному URL. Для данных каталога выберите несколько контрольных SKU с разными ценами и остатками. Если расхождение найдено, исправляйте источник данных или шаблон генерации, а не только один скачанный файл. Так следующая автоматическая выгрузка не вернёт проблему.
Приватность и обработка в браузере
Поля этого инструмента обрабатываются в вашем браузере. Содержимое не отправляется на сервер Pugofka, а локальный файл читается только после вашего выбора. Для XML определяется кодировка из объявления или BOM; при отсутствии подсказки сначала пробуется UTF-8, затем Windows-1251. Виджет скрыт от записи содержимого в Вебвизоре; в Яндекс Метрику передаются slug инструмента и тип действия — открытие, первое взаимодействие, запуск, получение результата, копирование или скачивание.
При копировании данные попадают в системный буфер обмена устройства, где их могут видеть другие приложения с соответствующим доступом. Если исходник содержит секреты или персональные данные, очистите поле после работы. Скачанный файл остаётся на устройстве, в выбранной браузером папке загрузок.
Что делать после проверки
Используйте результат как рабочий черновик: вставьте его в конфигурацию, страницу или документ и повторно проверьте там, где он будет применяться. Если вы меняете индексируемые страницы, обновите связанные ссылки и карту сайта. Для миграции URL дополнительно запустите сетевую проверку редиректов, чтобы увидеть фактические HTTP-ответы после публикации.
Если задача связана с каталогом, импортом или поддержкой интернет-магазина, команда Pugofka может помочь встроить такую проверку в регулярный обмен данными и исправить источник ошибок. Одноразовая онлайн-утилита полезна для диагностики, а постоянный поток данных обычно требует автоматической проверки на стороне проекта.
Частые вопросы
- Как начать работу с «Сравнение двух JSON»?
- Нажмите «Вставить пример», посмотрите формат полей, затем замените пример собственными данными и нажмите «Получить результат». Для файла используйте загрузку рядом с текстовым полем. Если увидите сообщение об ошибке, исправьте указанное поле и запустите инструмент снова.
- Можно ли скачать результат?
- Да. После успешной обработки появится кнопка скачивания файла json-diff.txt. Кнопка создаёт файл в браузере, поэтому данные не отправляются на сервер. Если нужно вставить итог в редактор или CMS, воспользуйтесь кнопкой копирования.
- Отправляются ли введённые данные на сервер?
- Нет. Обработка этого инструмента выполняется на устройстве посетителя. Даже при загрузке локального файла его содержимое читается браузером для обработки на странице. В аналитические события не включаются введённые значения, адреса и содержимое результата.
- Что означает сообщение об ошибке?
- Обычно исходные данные не соответствуют ожидаемому формату. Проверьте поля «Исходные данные», «Второй набор данных», кавычки, разделители и адреса. Вернитесь к встроенному примеру, чтобы сравнить структуру своего ввода с рабочим образцом.
- Есть ли ограничение на размер файла?
- Виджет принимает локальный текстовый файл размером до 5 МБ. Большой файл лучше разбить на части: это уменьшает нагрузку на браузер и упрощает поиск конкретной ошибочной строки. Если файл бинарный, его следует открыть в подходящем приложении, а не вставлять как текст.
- Можно ли использовать результат сразу на рабочем сайте?
- Сначала проверьте его на тестовой странице или небольшом фрагменте данных. Сравнение выполняется по разобранным значениям JSON: порядок ключей не считается изменением, повторные ключи теряют смысл. Итог может быть синтаксически верным, но не учитывать особенности вашего сервера, CMS или обмена данными.
- Будет ли результат доступен после перезагрузки страницы?
- Нет. Введённые данные и результат хранятся в состоянии открытой страницы. Скопируйте или скачайте итог до обновления вкладки. Такой подход также снижает риск случайного хранения чувствительных данных на общем устройстве.
- Чем эта проверка отличается от проверки опубликованного сайта?
- Локальный инструмент работает с тем, что вы вставили или загрузили. Он не делает запросы к внешнему сайту и не подтверждает, что опубликованная страница или файл совпадают с вашим образцом. После применения изменений отдельно проверьте фактический ответ сервера.
Нужна помощь с сайтом?
Поможем разобраться с технической задачей и оценить её решение.