CSV ⟷ JSON

Не вставляйте боевые .env с паролями и токенами: файл уходит на сервер для разбора.

Почему разделитель CSV определяется автоматически

Русский Excel по умолчанию сохраняет CSV через точку с запятой: запятая в русской локали занята под десятичный разделитель, поэтому Excel не может использовать её и для полей. Требовать от пользователя ручного выбора разделителя значило бы ломать самый частый сценарий, поэтому инструмент сам считает вхождения «;» и «,» в строке заголовка и берёт более частый символ.

Почему все значения приходят строками

CSV — текстовый формат без понятия типов: он не хранит, было ли значение 5432 числом или строкой из четырёх цифр. Угадывать тип по содержимому опасно — номер телефона 89261234567 или карты при попытке распознать число потерял бы ведущий ноль. Поэтому значения остаются строками ровно в том виде, в котором записаны в ячейке.

Какая структура нужна для обратного преобразования

Массив объектов с одинаковым набором полей, например [{"id":1,"name":"a"},{"id":2,"name":"b"}] — первый объект задаёт заголовок таблицы, остальные должны содержать те же ключи. Вложенные объекты и массивы внутри значения CSV не хранит: такую структуру нужно уплостить заранее, иначе конвертер честно откажется, а не потеряет данные молча.

Частые вопросы

Почему разделитель CSV определяется автоматически?

Русский Excel по умолчанию сохраняет CSV через точку с запятой, а не через запятую, потому что запятая в русской локали занята под десятичный разделитель. Требовать от пользователя ручной настройки значило бы ломать самый частый сценарий, поэтому инструмент сам считает вхождения «;» и «,» в строке заголовка и берёт более частый символ.

Почему все значения после конвертации в JSON — строки?

CSV — текстовый формат без понятия типов: он не хранит, было ли значение 5432 числом или строкой из четырёх цифр. Угадывать тип по содержимому опасно — например, номер телефона 89261234567 или номер карты при попытке распознать число потерял бы ведущий ноль. Поэтому значения остаются строками ровно в том виде, в котором записаны в ячейке.

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

Массив объектов с одинаковым набором полей, например [{"id":1,"name":"a"},{"id":2,"name":"b"}] — первый объект задаёт заголовок таблицы, остальные должны содержать те же ключи. Вложенные объекты и массивы внутри значения CSV не хранит: такую структуру нужно уплостить заранее.

Другие конвертеры

JSON ⟷ PHP-массив, универсальный конвертер конфигов (JSON, YAML, .env, PHP-массив, XML, CSV), JSON ⟷ YAML, JSON ⟷ XML, а также остальные инструменты.

Нужна разработка или консультация?

Опишите задачу — отвечу и предложу формат работы.

Обсудить задачу