раздел 04 · подстраница 1
JSON или CSV: что выбрать
Оба - текстовые файлы, оба хранят данные, оба читаются любым языком. Новичка это путает: когда брать что? Ответ упирается в одну вещь - форму ваших данных. Плоская таблица или дерево.
Главное различие за минуту
CSV - это таблица. Строки и столбцы, как в Excel. Каждая запись - одна строка с фиксированным набором полей.
JSON - это дерево. Внутри значения может быть список или ещё один объект, а внутри него - ещё. Вложенность любой глубины.
Возьмём одни и те же данные о человеке.
В CSV (плоско, одна запись - одна строка):
name,age,city
Анна,28,Москва
В JSON (с вложенностью - несколько телефонов, адрес объектом):
{
"name": "Анна",
"age": 28,
"address": { "city": "Москва", "street": "Ленина", "house": 1 },
"phones": ["+7900...", "+7901..."]
}
Заметьте: в CSV для address и phones пришлось бы городить костыли. В JSON это естественно.
Таблица сравнения
| | CSV | JSON | | --- | --- | --- | | Форма данных | плоская таблица | дерево, вложенность | | Типы (число, bool) | нет, всё текст | да | | Списки внутри записи | нет | да | | Открыть в Excel | да | нет | | Размер файла | компактнее | многословнее | | Где живёт | выгрузки, аналитика | API, конфиги, веб |
Когда брать CSV
- Данные однотипные и плоские: список клиентов, транзакций, товаров.
- Их будут открывать в Excel или Google Sheets люди.
- Это выгрузка для аналитики или импорт в другую систему.
- Записей много, и важна компактность.
Когда брать JSON
- У данных есть вложенность: объекты внутри объектов, списки.
- Важны типы: числа, true/false, null.
- Данные передаются по сети между программами (API).
- Это конфиг или настройки приложения.
Их можно сочетать
Это не вечная вражда. Часто CSV используют для выгрузки таблицы наружу, а внутри программы данные живут как JSON или в базе. Бывает и так: основные данные плоские (CSV), а к ним сбоку - JSON-конфиг с настройками. Выбирайте формат под конкретную задачу, а не «раз и навсегда».
Антипаттерны
- Тащить вложенность в CSV через самодельные разделители внутри клетки. Вы переизобретаете JSON, только криво.
- Гнать табличную аналитику через JSON, когда заказчик живёт в Excel. Дайте людям CSV, который открывается двойным кликом.
- Спорить «что лучше вообще». Лучше - то, что подходит форме данных. У них разные задачи.