Skip to main content
CheckTown
Дані

JSON Flatten: Convert Nested to Flat and Back

Опубліковано 5 хв читання
У цій статті

Що таке згладжування JSON?

Згладжування JSON перетворює глибоко вкладений JSON-об'єкт у плоску структуру ключ-значення з використанням шляхів у крапковій нотації. Кожне кінцеве значення отримує унікальний шлях, наприклад 'user.address.city', що описує його позицію в ієрархії.

Зворотна операція, розгладжування, бере шляхи в крапковій нотації і відновлює початкову вкладену структуру. Разом згладжування і розгладжування дозволяють трансформувати JSON між вкладеними та плоскими представленнями без втрати даних.

Як працює згладжування JSON

Алгоритм згладжування рекурсивно обходить дерево JSON, будуючи рядок шляху при зануренні у вкладені об'єкти та масиви.

  • Рекурсивний обхід — алгоритм проходить кожний ключ в об'єкті, додаючи кожний ключ до зростаючого шляху, розділеного крапками
  • Нотація індексів масиву — елементи масиву використовують нотацію дужок, наприклад 'items[0].name', для збереження позиції
  • Збір листків — коли досягнуто примітивне значення, повний шлях і значення зберігаються як плоска пара ключ-значення

Спробуйте безкоштовно — реєстрація не потрібна

Згладити або розгладити JSON →

Коли використовувати згладжування JSON

Згладжений JSON корисний, коли потрібно працювати з вкладеними даними в системах, що підтримують лише плоскі структури.

  • Зберігання в базі даних — зберігайте вкладені конфігурації в плоских таблицях ключ-значення без зміни схеми
  • Експорт CSV — перетворюйте вкладені JSON-записи в плоскі рядки для імпорту в таблицю
  • Порівняння конфігурацій — згладьте два файли конфігурації та порівняйте плоскі ключі, щоб швидко знайти зміни

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

Чи зберігає згладжування типи даних?

Так. Усі примітивні значення (рядки, числа, булеві, null) зберігаються точно. Масиви стають індексованими шляхами, а вкладені об'єкти — шляхами через крапку. Розгладжування відновлює оригінальні типи.

Що відбувається при дуже глибокому вкладенні?

Згладжувач обробляє будь-яку глибину вкладення. Дуже глибокі об'єкти створюють довгі рядки шляхів, але функціонального обмеження немає. Більшість реалізацій використовують ітеративні підходи.

Чи можна згладити JSON з дублюваними ключами?

JSON не дозволяє дублювання ключів на одному рівні за специфікацією. Якщо ваш парсер їх приймає, лише останнє значення для кожного ключа збережеться. Згладжувач працює з розібраним об'єктом.

Пов'язані інструменти