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

Бесплатный конвертер CSV в JSON, который также превращает JSON в CSV. Справляется с кавычками, переносами строк внутри полей и файлами Excel с разделителем «точка с запятой», прямо в браузере. Ничего не загружается на сервер.

Добавляет апостроф перед текстом, начинающимся с =, +, - или @, чтобы Excel не выполнил его как формулу.

Что он делает


CSV — это таблица, записанная текстом: одна запись на строку, поля разделены разделителем. Выглядит просто, и именно поэтому конвертеры молча ошибаются. Запятая внутри кавычек — часть текста, а не новый столбец; перенос строки внутри кавычек — часть поля, а не новая запись; а Excel на португальском, испанском, французском или немецком сохраняет файлы с точкой с запятой, потому что там запятая — десятичный разделитель. Этот конвертер читает CSV по правилам RFC 4180, находит разделитель, выбирая тот, при котором во всех строках одинаковое число столбцов, и превращает каждую строку в объект JSON с ключами из заголовка. В обратном направлении он создаёт столбец для каждого ключа, встречающегося в любом объекте, а не только в первом.

Как пользоваться


  1. Вставьте CSV или JSON либо откройте файл.
  2. Проверьте параметры: разделитель, строку заголовка и типы данных.
  3. Выполните конвертацию в нужном направлении, затем скопируйте или скачайте результат.

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


Почему мои почтовые индексы и ID остались текстом?
Потому что превращение в числа изменило бы их. 007 стало бы 7, а ID длиннее 16 цифр JavaScript молча округлил бы до другого числа. Числами становятся только значения, которые проходят преобразование туда и обратно без изменений; отключите преобразование типов, чтобы оставить всё текстом.

Мой CSV из Excel, и всё оказалось в одном столбце.
Скорее всего, он был сохранён с точкой с запятой, а прочитан с запятыми. Оставьте разделитель на автоматическом определении, которое проверяет четыре самых распространённых, или выберите точку с запятой вручную.

Почему десятичные числа вроде 4,50 остаются текстом?
В файле с точкой с запятой 4,50 — это, вероятно, четыре с половиной, но 1,500 может означать и полтора, и полторы тысячи, а угадывание изменило бы значения без предупреждения. Преобразуйте их в своей программе, где вы знаете, что имеется в виду.

Как вложенные объекты превращаются в столбцы?
При включённом разворачивании {"address": {"city": "Recife"}} становится столбцом с именем address.city. Списки, а также объекты при выключенном разворачивании записываются в ячейку как текст JSON, так что ничего не теряется.

Зачем защищаться от формул?
Программы электронных таблиц считают ячейку, начинающуюся с =, +, - или @, формулой, а формула может загружать данные из интернета или выполнять команды. Если данные получены от пользователей или с веб-сайта, включите защиту перед открытием файла в Excel. Настоящие отрицательные числа не затрагиваются.

RFC 4180 — CSV
Wikipedia — Comma-separated values
OWASP — CSV Injection