JSON

JSON Sort Keys

Рекурсивне сортування ключів об’єктів у JSON за алфавітом — порядок елементів масивів не змінюється, лише ключі об’єктів на кожному рівні вкладеності.

JSON не гарантує порядок ключів об’єкта, тому два семантично однакові документи можуть виглядати по-різному просто через порядок полів. Інструмент рекурсивно сортує ключі об’єктів за алфавітом на кожному рівні вкладеності, не змінюючи порядок елементів масивів.

Як користуватися

Типові сценарії

Що варто памʼятати

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

Сортуються лише ключі об’єктів — порядок елементів масивів має семантичне значення в JSON і тому не змінюється.

Стаття про цей інструмент: JSON Sort Keys: навіщо сортувати ключі об’єкта

Часті запитання

Навіщо сортувати ключі JSON?

Відсортовані ключі спрощують порівняння двох версій JSON (diff-и стають чистішими) і роблять структуру передбачуванішою при перегляді конфігураційних файлів чи відповідей API.

Чи зміниться порядок елементів у масивах?

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

Чи обробляються дані на сервері?

Ні, сортування виконується повністю у браузері на JavaScript, без надсилання даних кудись іще.

Чи сортуються ключі рекурсивно на всіх рівнях вкладеності?

Так, сортування застосовується не лише до ключів верхнього рівня, а й до ключів усіх вкладених об’єктів на будь-якій глибині — інакше результат був би непослідовним.

Чи впливає мова/локаль на порядок відсортованих ключів?

Побайтове сортування (за кодами 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 популярні для конфігів.