IZN Tools

Конвертер CSV в JSON

Строка заголовков, свои разделители и типизация значений.

CSV
JSON
Ожидание ввода
Посчитано на вашем устройстве

Почему для CSV нужен парсер

CSV выглядит тривиально, пока не приходят настоящие данные. Три правила — вся причина, по которой нужен сканер, а не разбиение по разделителю:

  • Поле в кавычках может содержать сам разделитель
  • Поле в кавычках может содержать перенос строки, и одна запись растянется на несколько строк
  • Две кавычки внутри закавыченного поля означают одну буквальную

Любая выгрузка с адресом, названием компании или свободным текстом наткнётся как минимум на первое.

Типы — это решение, а не мелочь

Превратить числовую строку в число удобно. Сделать это с 007 — потеря данных, и происходит она молча с идентификаторами, индексами, телефонами и номерами версий. Поэтому переключатель существует и поэтому он выключен.

Когда он включён, ведущие нули защищены отдельно: значение, похожее на число, но начинающееся с нуля, остаётся строкой.

Заголовки

Со строкой заголовков каждая запись становится объектом с ключами по именам колонок. Пустая ячейка заголовка дала бы пустой ключ, поэтому такие колонки называются column_2 и так далее, а не сталкиваются между собой.

Вопросы

Почему приведение типов выключено по умолчанию?+

Потому что оно портит данные. Индекс 01234, номер телефона, референс заказа 007 — всё это молча превращается в числа с потерянным ведущим нулём. Включайте, когда точно знаете, что колонки числовые; для всего, что что-то идентифицирует, оставляйте выключенным.

Обрабатываются ли запятые внутри кавычек?+

Да, а также переносы строк внутри кавычек и удвоенные кавычки, означающие одну буквальную. Именно это отличает настоящий парсер CSV от разбиения по разделителю, и поэтому выгрузка с колонкой адреса ломает наивные инструменты.

Файл из Excel, и название первой колонки выглядит странно.+

Excel пишет в начало файла метку порядка байтов UTF-8, которая становится невидимым символом в первом заголовке. Здесь она отсекается до разбора, поэтому первый ключ получается чистым.

А если в файле точки с запятой?+

Выберите разделитель на панели. Файлы с точкой с запятой — норма везде, где запятая служит десятичным разделителем, то есть в большей части континентальной Европы и СНГ.