Конвертація JSON у CSV перетворює структуровані дані з формату JSON у значення, розділені комою — табличний формат, який таблиці, бази даних і аналітичні інструменти сприймають нативно. JSON зберігає дані як вкладені об'єкти та масиви без фіксованої схеми. CSV зберігає дані як рядки й стовпці з рядком заголовка, що визначає імена полів. Конвертація — це спосіб, яким дані з API потрапляють до таблиць і баз даних.
CSV (Comma-Separated Values) визначається стандартом RFC 4180. Кожен рядок — це один запис, а поля в рядку розділяються символом-роздільником, найчастіше комою. Поля, що містять роздільник, подвійні лапки або переноси рядка, мають бути взяті у подвійні лапки, а внутрішні лапки екрануються подвоєнням. Саме це екранування є головним джерелом помилок при написанні конвертера JSON у CSV вручну.
Конвертація проста, коли вхідні дані — це плаский масив об'єктів з однаковими ключами. Кожен об'єкт стає одним рядком, а кожен унікальний ключ — заголовком стовпця. Вкладені об'єкти та масиви потребують кроку вирівнювання, а непослідовні ключі між об'єктами вимагають стратегії обробки відсутніх полів — зазвичай клітинку залишають порожньою. Надійний конвертер обробляє всі ці граничні випадки автоматично.
Навіщо конвертувати JSON у CSV?
API повертають JSON, але таблиці, SQL-бази даних і BI-інструменти очікують табличні дані. Конвертація JSON у CSV дозволяє переміщати дані між цими системами без написання власних скриптів імпорту.
⚡
Миттєва конвертація в браузері
Вставте JSON і завантажте файл відразу. Без відвантаження на сервер, без обмежень на розмір від зовнішніх API, без очікування в черзі обробки.
🔒
Обробка з пріоритетом конфіденційності
Ваші дані залишаються у браузері. Конвертація повністю виконується на JavaScript на вашому пристрої. Експорти з бази даних, записи користувачів і фінансові дані ніколи не залишають вашу машину.
🔀
Підтримка кількох роздільників
Вибирайте між роздільниками: кома, крапка з комою, табуляція або вертикальна риска. Використовуйте крапку з комою для таблиць з European-локалями, табуляцію для TSV-файлів або вертикальну риску для імпорту в legacy-системи.
📋
Не потрібен обліковий запис
Відкрийте сторінку і конвертуйте. Без реєстрації, без API-ключа, без встановлення CLI. Працює на будь-якому пристрої з сучасним браузером.
Сценарії використання JSON у CSV
Експорт даних API для таблиць
REST API повертають JSON. Менеджери продукту та аналітики потребують ці дані в Excel або Google Sheets. Конвертуйте відповідь API у CSV і відкривайте її напряму в будь-якому табличному застосунку.
Масовий імпорт до бази даних
PostgreSQL COPY, MySQL LOAD DATA та SQLite .import — всі приймають CSV. Конвертуйте набір даних у табличний формат для швидкого масового завантаження без написання власного скрипту імпорту.
Прототипування ETL-конвеєрів
ETL-конвеєри часто мають проміжні виводи, які важко аналізувати як сирий JSON. Конвертуйте вивід кроку у CSV і відкрийте в таблиці, щоб перевірити трансформації перед збіркою повного конвеєра.
Підготовка тестових даних для QA
QA-інженери генерують тестові фікстури як JSON, але багато тестових фреймворків і інструментів data-driven-тестування приймають CSV для параметризованих тестових вхідних даних. Конвертуйте фікстури у CSV без ручного переформатування.
Аналіз логів і звітність
Структуровані JSON-логи з застосунків і хмарних сервісів можна конвертувати у CSV для імпорту в BI-інструменти, як-от Tableau, Power BI або Looker, для візуалізації та звітності.
Обробка наукових даних
Студенти та дослідники, що працюють з open data API, отримують відповіді у форматі JSON. Конвертація у CSV дозволяє аналізувати дані в R, pandas, SPSS або Excel без написання коду парсингу.
Довідник роздільників CSV
Символ-роздільник розділяє поля в кожному рядку. Кома є найпоширенішою, але інші роздільники є стандартними в конкретних контекстах. Вибір неправильного роздільника призводить до злиття або розбиття полів при відкритті файлу.
Роздільник
Символ
Розширення
Коли використовувати
Comma
,
.csv
Default for most spreadsheets and databases
Semicolon
;
.csv
Standard in locales where comma is a decimal separator (DE, FR, BR)
Tab
\t
.tsv
Avoids escaping when field values contain commas or semicolons
Pipe
|
.csv
Used in fixed-width legacy systems and some ETL pipelines
Обробка вкладеного JSON у CSV
CSV — це плаский формат без нативного способу представлення вкладених об'єктів або масивів. Коли JSON містить вкладені структури, конвертер має вирівняти їх у стовпці. Існує кілька стратегій, і правильний вибір залежить від того, як буде використовуватися CSV.
Вирівнювання через крапкову нотацію
Вкладені ключі об'єднуються через крапку: {"address": {"city": "Київ"}} перетворюється на стовпець із назвою address.city зі значенням Київ. Це найпоширеніший підхід, який добре працює з інструментами, що підтримують посилання на вкладені поля.
Стовпці з індексами масиву
Масиви розгортаються у пронумеровані стовпці: {"tags": ["a", "b"]} перетворюється на tags.0 = a, tags.1 = b. Це зберігає всі значення, але створює багато стовпців, коли масиви великі.
Запасний варіант — JSON-рядок
Складні вкладені значення серіалізуються як JSON-рядки в клітинці CSV: клітинка містить сирий JSON-текст. Це зберігає повну структуру, але вимагає від споживача розпарсити значення клітинки.
Ігнорування вкладених полів
Деякі конвертери повністю відкидають вкладені об'єкти та масиви, залишаючи лише скалярні поля (рядок, число, булеве значення, null). Це дає чистий CSV, але втрачає дані. Корисно лише тоді, коли ви знаєте, що вкладені поля не потрібні.
Приклади коду
Програмна конвертація JSON у CSV потребує обробки видобутку заголовків, екранування полів і роздільників. У більшості мов є вбудована або стандартна бібліотечна підтримка запису CSV.
# Using jq to convert JSON array to CSV
echo '[{"name":"Alice","age":30},{"name":"Bob","age":25}]' | \
jq -r '(.[0] | keys_unsorted) as $k | $k, (.[] | [.[$k[]]] ) | @csv'
# → "name","age"
# → "Alice",30
# → "Bob",25
# Using Miller (mlr) for streaming conversion
echo '[{"name":"Alice","age":30}]' | mlr --json --ocsv cat
# → name,age
# → Alice,30
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"os"
)
func main() {
jsonStr := `[{"name":"Alice","age":30},{"name":"Bob","age":25}]`
var data []map[string]interface{}
json.Unmarshal([]byte(jsonStr), &data)
w := csv.NewWriter(os.Stdout)
// Write header
headers := []string{"name", "age"}
w.Write(headers)
// Write rows
for _, row := range data {
record := make([]string, len(headers))
for i, h := range headers {
record[i] = fmt.Sprintf("%v", row[h])
}
w.Write(record)
}
w.Flush()
// → name,age
// → Alice,30
// → Bob,25
}
Часті запитання
Яку структуру JSON очікує цей конвертер?
Конвертер очікує JSON-масив об'єктів, наприклад [{"name":"Олена"},{"name":"Іван"}]. Кожен об'єкт у масиві стає одним рядком у виводі, а ключі об'єктів — заголовками стовпців. Одиничний JSON-об'єкт (не обгорнутий у масив) обробляється як таблиця з одним рядком.
Як обробляються вкладені об'єкти та масиви?
Вкладені значення вирівнюються за допомогою крапкової нотації. Наприклад, {"address":{"city":"Київ"}'} дає стовпець із назвою address.city. Масиви розгортаються у проіндексовані стовпці (tags.0, tags.1). Це зберігає дані, зберігаючи вивід пласким.
Що відбувається, коли об'єкти мають різні ключі?
Конвертер збирає всі унікальні ключі з усіх об'єктів у масиві і використовує їх як заголовки стовпців. Об'єкти, в яких відсутній ключ, отримують порожню клітинку для цього стовпця. Дані не втрачаються, а порядок стовпців відповідає порядку першої появи ключів.
Чи можна використовувати крапку з комою або табуляцію замість коми?
Так. Інструмент підтримує роздільники: кома, крапка з комою, табуляція та вертикальна риска. Використовуйте крапку з комою, коли ваші дані або локаль використовують кому як десятковий роздільник (поширено в німецьких, французьких і бразильських таблицях). Використовуйте табуляцію для TSV-файлів, що споживаються Unix-інструментами.
Чи є конвертація без втрат?
Для пласких JSON-масивів з однаковими скалярними значеннями — так. Вихідний файл містить ті самі дані і може бути конвертований назад у ідентичний JSON. Для вкладених структур вирівнювання змінює форму даних. Значення масивів, серіалізовані у проіндексовані стовпці або JSON-рядки, можна відновити, але зворотна конвертація потребує знання вихідної структури.
Наскільки великий JSON-файл можна конвертувати?
Інструмент працює у вашому браузері та обробляє дані в пам'яті — файли до 10–20 МБ конвертуються без проблем на сучасних пристроях. Для файлів більшого розміру використовуйте CLI-інструмент на кшталт jq, Miller або Python-скрипт з модулем csv, які обробляють дані як потік.
Чи безпечно вставляти чутливі дані в цей інструмент?
Так. Вся обробка відбувається у вашому браузері за допомогою JavaScript. Жодні дані не надсилаються на жодний сервер. Ви можете переконатися в цьому, відкривши інструменти розробника браузера і перевіривши вкладку «Мережа» під час конвертації.