Усі статті

JSON Flatten: перетворення вкладеної структури у плаский список

Вкладені об’єкти та масиви зручні для представлення складних структур даних, але незручні там, де потрібен плаский список пар «ключ → значення» — наприклад, у таблицях, електронних таблицях чи логах. Flatten (сплощення) розв’язує саме цю задачу.

Як це працює

Кожне вкладене поле перетворюється на один рядок, де ключ — це повний шлях до значення, записаний через крапку чи квадратні дужки, а значення — саме значення. Наприклад, {"user": {"address": {"city": "Київ"}}} перетворюється на пару user.address.city → "Київ". Елементи масивів отримують індекс у шляху, наприклад items[0].name.

Навіщо це потрібно

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

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

Сплощення — операція з втратами у сенсі зручності зворотного перетворення: щоб відновити оригінальну вкладену структуру з плаского списку, потрібно знову розпарсити шляхи. Для одноразового аналізу чи експорту даних це зазвичай не проблема.

Зворотна операція: unflatten

Відновити вкладену структуру з плаского списку можна, розбираючи кожен ключ на сегменти шляху (за крапками й індексами в дужках) і послідовно створюючи вкладені об’єкти й масиви. Складність виникає, коли шлях неоднозначний — наприклад, якщо в даних одночасно є ключ "a.b" буквально і вкладений шлях a.b, unflatten не може однозначно визначити, який варіант мався на увазі.

Спробувати інструмент