раздел 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 это естественно.

Таблица сравнения

CSVJSON
Форма данныхплоская таблицадерево, вложенность
Типы (число, bool)нет, всё текстда
Списки внутри записинетда
Открыть в Excelданет
Размер файлакомпактнеемногословнее
Где живётвыгрузки, аналитикаAPI, конфиги, веб

Когда брать CSV

  • Данные однотипные и плоские: список клиентов, транзакций, товаров.
  • Их будут открывать в Excel или Google Sheets люди.
  • Это выгрузка для аналитики или импорт в другую систему.
  • Записей много, и важна компактность.

Когда брать JSON

  • У данных есть вложенность: объекты внутри объектов, списки.
  • Важны типы: числа, true/false, null.
  • Данные передаются по сети между программами (API).
  • Это конфиг или настройки приложения.

Их можно сочетать

Это не вечная вражда. Часто CSV используют для выгрузки таблицы наружу, а внутри программы данные живут как JSON или в базе. Бывает и так: основные данные плоские (CSV), а к ним сбоку - JSON-конфиг с настройками. Выбирайте формат под конкретную задачу, а не «раз и навсегда».

Антипаттерны

  • Тащить вложенность в CSV через самодельные разделители внутри клетки. Вы переизобретаете JSON, только криво.
  • Гнать табличную аналитику через JSON, когда заказчик живёт в Excel. Дайте людям CSV, который открывается двойным кликом.
  • Спорить «что лучше вообще». Лучше - то, что подходит форме данных. У них разные задачи.