JSON

JSON Sort Keys

Рекурсивная сортировка ключей объектов в JSON по алфавиту — порядок элементов массивов не меняется, только ключи объектов на каждом уровне вложенности.

JSON не гарантирует порядок ключей объекта, поэтому два семантически одинаковых документа могут выглядеть по-разному просто из-за порядка полей. Инструмент рекурсивно сортирует ключи объектов по алфавиту на каждом уровне вложенности, не меняя порядок элементов массивов.

Как пользоваться

Типичные сценарии

Что стоит помнить

Сортировка побайтовая (по кодам Unicode) — все заглавные буквы идут перед строчными независимо от алфавита, в отличие от сортировки с учётом языковых правил.

Сортируются только ключи объектов — порядок элементов массивов имеет смысловое значение в JSON и поэтому не меняется.

Статья об этом инструменте: JSON Sort Keys: зачем сортировать ключи объекта

Часто задаваемые вопросы

Зачем сортировать ключи JSON-объекта по алфавиту?

Сортировка ключей упрощает осмысленное сравнение двух файлов JSON, поскольку порядок ключей иначе зависит от того, как объект был изначально создан, хотя это и не влияет на смысл.

Меняет ли сортировка ключей смысл моего JSON?

Нет. В JSON порядок ключей объекта не имеет семантического значения — сортировка меняет только то, как выглядят данные, а не то, что они представляют.

Отправляет ли этот инструмент мой JSON куда-либо для сортировки?

Нет. Сортировка происходит полностью в вашем браузере — ничего не загружается на сервер.

Сортируются ли ключи рекурсивно на всех уровнях вложенности?

Да, сортировка применяется не только к ключам верхнего уровня, но и к ключам всех вложенных объектов на любой глубине — иначе результат был бы непоследовательным.

Влияет ли язык/локаль на порядок отсортированных ключей?

Побайтовая сортировка (по кодам Unicode) ставит все заглавные буквы перед строчными независимо от алфавита. Это отличается от сортировки с учётом языковых правил, которая упорядочивает буквы «по-человечески» — для большинства технических ключей разница незаметна, но стоит иметь это в виду для нелатинских названий.

Статьи: JSON

JSON Formatter: форматирование, минимизация и валидация

Форматирование для читаемости, минимизация для размера, валидация для корректности — три разные задачи с JSON.

JSONPath: как искать данные в JSON без ручного парсинга

Как JSONPath позволяет достать нужные значения из большого JSON одним выражением вместо ручного обхода.

JSON Diff: чем структурное сравнение отличается от текстового

Почему порядок ключей не должен влиять на сравнение двух JSON-документов.

JSON Schema: как описать и проверить структуру JSON

Как JSON Schema позволяет автоматически проверить, соответствуют ли данные ожидаемому контракту.

JSON Flatten: превращение вложенной структуры в плоский список

Как глубоко вложенный JSON превращается в плоский список ключей вида user.address.city.

JSON Repair: почему JSON ломается и как это исправить

Типичные причины «сломанного» JSON и что автоматический ремонт может, а что не может исправить.

Mock JSON Generator: зачем нужны фейковые данные

Как мок-данные позволяют начать разработку интерфейса ещё до того, как готов бекенд.

JSON ↔ YAML/CSV/XML/TOML: когда и зачем конвертировать

Какие данные теряются при конвертации JSON в CSV и почему YAML и TOML популярны для конфигов.