Дані · 3 хв читання ·

JSON у CSV без втрати жодного поля

Вкладені ключі, необов’язкові поля та коми всередині рядків: як 4Dev перетворює заплутаний JSON на CSV, готовий для таблиці.

Таблиця пласка, а JSON ні. Будь-яка конвертація JSON у CSV має вирішити, що робити з вкладеними об’єктами, масивами та ключами, які є лише в частини записів. Ось що саме робить конвертер 4Dev.

Кожен ключ отримує свою колонку

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

[{"id":1,"name":"Ada"},
 {"id":2,"name":"Alan","note":"optional"}]

id,name,note
1,Ada,
2,Alan,optional

Вкладені об’єкти стають колонками з підкресленням

Об’єкти розгортаються: їхні ключі з’єднуються через підкреслення, і {"address":{"city":"Lisbon"}} стає колонкою address_city. Масив простих значень потрапляє в одну клітинку ("admin, dev"), а масив об’єктів зберігається в клітинці як текст JSON, тож нічого не втрачається.

Коми й лапки екрануються автоматично

Будь-яке значення з комою, подвійними лапками або переносом рядка береться в подвійні лапки, а внутрішні лапки подвоюються. Це стандартне правило CSV, на яке розраховують Excel і Google Таблиці.

2,"Alan, T.","says ""hi"""

Відкриваємо CSV в Excel

CSV не має власних налаштувань, тож Excel вгадує. Найчастіше ламаються дві речі. У країнах, де десятковим роздільником є кома, зокрема в Україні, Excel чекає крапку з комою між стовпцями й може запхати весь рядок в одну клітинку. А кирилиця, іврит чи емодзі перетворюються на дивні символи, якщо файл відкрито в локальному кодуванні замість UTF-8. В обох випадках скористайтеся в Excel Дані → З текстового/CSV-файлу, оберіть UTF-8 і роздільник «кома», і стовпці стануть на місце.

Початкові нулі й довгі числа

Таблиці вважають числом усе, що схоже на число. Індекс на кшталт 01234 втрачає початковий нуль, а 16-значний ідентифікатор на кшталт 1234567890123456 округлюється й показується як 1,23457E+15. Сам CSV при цьому правильний; шкода стається, коли його відкриває Excel. Імпортуйте такі стовпці як текст, а довгі ідентифікатори передавайте в JSON рядками ("id": "1234567890123456"), щоб будь-який інструмент зберіг їх точно.

Масиви всередині записів

Масиви — найскладніша частина будь-якої конвертації: в одному записі може бути багато значень, а в рядку CSV одна клітинка на стовпець. Якщо рознести їх на кілька рядків, повторяться всі інші поля, а якщо на пронумеровані стовпці (tags_1, tags_2…), кожен файл матиме свій заголовок. Коли список простих значень зберігається в одній клітинці, а масив об’єктів — як JSON-текст, кожен запис лишається рівно одним рядком, а вихідні дані за потреби можна відновити.

Перевірте результат, перш ніж ділитися

  • Кількість рядків збігається з кількістю записів у JSON-масиві.
  • У заголовку є всі очікувані поля, зокрема необов’язкові.
  • Вкладені поля перетворилися на стовпці з підкресленням, наприклад address_city.
  • Значення з комами, лапками чи переносами рядків залишилися в одній клітинці.

Потрібна таблиця або зворотний напрямок?

Конвертер JSON у CSV від 4Dev щоразу застосовує ті самі правила «сплощення», а інструменти JSON в Excel і CSV у JSON закривають інші поширені випадки. Для швидкої перевірки спершу вставте кілька записів, подивіться на стовпці, а потім конвертуйте весь файл.

Відкрити конвертер JSON у CSV

LinkedInXFacebook