Перейти к содержимому

Конвертер CSV в JSON - Бесплатный онлайн-инструмент для преобразования файлов

Мгновенное преобразование CSV в JSON и JSON в CSV прямо в вашем браузере. Безопасное и быстрое преобразование данных с предварительным просмотром и загрузкой. Не требуется загрузка файлов.

Конвертер файлов CSV/JSON

Легко конвертируйте между форматами CSV и JSON. Загрузите файл, просмотрите данные и скачайте преобразованный результат.

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

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

Калькулятор загрузки...
📚

Документация

Что такое конвертер CSV в JSON?

Конвертер CSV в JSON — это инструмент, который преобразует данные из формата CSV (значения, разделённые запятыми) в формат JSON (объектная нотация JavaScript) или выполняет обратное преобразование. Конвертер полностью работает в веб-браузере. Загруженный файл никогда не отправляется на сервер, поэтому данные остаются на устройстве пользователя.

CSV — это текстовый формат для хранения таблиц, например таблиц, экспортированных из Excel или Google Sheets. JSON — текстовый формат на основе пар «ключ—значение», широко используемый для передачи данных между веб-приложениями и API. Поскольку эти форматы по-разному организуют данные, преобразование между ними требует определённого набора правил, описанных ниже.

Как преобразовать CSV в JSON

  1. Нажмите «Upload CSV File» и выберите на устройстве файл .csv.
  2. Инструмент показывает предварительный просмотр содержимого исходного файла.
  3. Нажмите «Convert to JSON». Инструмент считывает первую строку как заголовки столбцов, а каждую следующую строку превращает в один объект JSON.
  4. Результат отображается в области предварительного просмотра с отступами.
  5. Нажмите «Download JSON», чтобы сохранить результат как файл .json, или «Copy JSON», чтобы скопировать текст.

Как преобразовать JSON в CSV

  1. Нажмите «Upload JSON File» и выберите файл .json. Файл должен содержать массив объектов JSON, например [{"Name":"Ann"},{"Name":"Bo"}].
  2. Инструмент показывает предварительный просмотр исходного текста JSON.
  3. Нажмите «Convert to CSV». Инструмент собирает все ключи, используемые во всех объектах, и превращает каждый ключ в столбец.
  4. Результат отображается в области предварительного просмотра как текст CSV.
  5. Нажмите «Download CSV», чтобы сохранить результат как файл .csv, или «Copy CSV», чтобы скопировать текст.

Сервер не устанавливает ограничений на загрузку, поскольку данные не покидают браузер. Однако очень большой файл может замедлить работу вкладки браузера: во время преобразования весь файл хранится в памяти.

Правила преобразования CSV в JSON

Конвертер считывает первую строку файла как имена столбцов. Каждая следующая строка становится одним объектом JSON, а имена столбцов используются как ключи. Если в строке больше значений, чем заголовков, для дополнительных значений создаются ключи, названные по их абсолютной позиции в строке: при 3 заголовках четвёртое значение получает ключ field_4, пятое — field_5 и так далее, поэтому данные не теряются. Если в строке меньше значений, для отсутствующих ключей используются пустые строки. Если два заголовка имеют одинаковое имя, второй получает суффикс: например, a, a превращается в ключи a и a_2.

Конвертер следует правилам CSV, определённым в RFC 4180 — техническом стандарте этого формата. Запятая внутри поля считается значением этого поля, а не разделителем столбцов, только если поле заключено в двойные кавычки, например "Smith, John". Перенос строки внутри кавычек сохраняется как часть значения, а не считается началом новой строки. Две двойные кавычки внутри поля в кавычках обозначают один буквальный символ кавычки.

В качестве разделителя столбцов распознаются только запятые; инструмент не обнаруживает и не поддерживает точки с запятой, табуляции и другие разделители.

Каждое значение проверяется и преобразуется в определённый тип:

  • Значение, записанное как обычное число, например 42 или -3.5, становится числом JSON.
  • Текст true или false, независимо от регистра букв, становится логическим значением JSON.
  • Всё остальное остаётся строкой JSON, включая пустые ячейки, которые преобразуются в пустые строки.
  • Число с ведущим нулём, например 00512, остаётся строкой, поскольку ведущий ноль часто имеет смысл, как в почтовом индексе или идентификационном номере.
  • Число принимается только в том случае, если при обратной записи получается в точности тот же текст. Длинные целые числа больше 9,007,199,254,740,991 — максимального целого числа, которое число JavaScript хранит без потери точности, — обычно не проходят эту проверку и остаются строками, поэтому цифры не теряются.
  • Значение, которое уже было заключено файлом в кавычки, всегда сохраняется как строка, даже если выглядит как число, поскольку кавычки считаются указанием автора на то, что это текст.

Пустые строки в файле пропускаются и не создают пустых объектов.

Правила преобразования JSON в CSV

Конвертер просматривает каждый объект в массиве и собирает полный набор ключей, использованных во всех объектах. Эти ключи становятся заголовками столбцов CSV в порядке их первого появления. Если в одном объекте отсутствует ключ, имеющийся в другом объекте, соответствующая ячейка остаётся пустой, а не вызывает ошибку.

При преобразовании JSON в CSV вложенные объекты не разворачиваются в отдельные столбцы. Значение, являющееся объектом или массивом, записывается как текст JSON в одной ячейке: например, {"b": 1} становится ячейкой {"b":1}, а [1, 2] — ячейкой [1,2]. Ничего не теряется, но вложенная часть остаётся в одном столбце, а не разделяется на несколько. Если для каждого элемента нужен отдельный столбец, сначала вручную разверните вложенный JSON.

Значение null и ключ, имеющийся в одном объекте, но отсутствующий в другом, оба создают пустую ячейку.

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

Входные данные JSON должны быть массивом, и каждый его элемент должен быть объектом. Число, строка, null или вложенный массив вместо объекта вызывают ошибку «JSON должен быть массивом объектов». Пустой массив вызывает ошибку «JSON-массив пуст. Добавьте хотя бы один объект для преобразования». Пустой загруженный файл вызывает ошибку «Загруженный файл пуст».

Пример расчёта

Исходный файл CSV:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4

После преобразования в JSON получается:

1[
2  {
3    "Name": "Ann Lee",
4    "Age": 29,
5    "Member": true
6  },
7  {
8    "Name": "Bo, Jr.",
9    "Age": 7,
10    "Member": false
11  }
12]
13

Обратите внимание: "Bo, Jr." сохранило запятую, поскольку поле в исходном файле было заключено в кавычки, а Age и Member стали числом и логическим значением.

При обратном преобразовании того же JSON в CSV с добавленной строкой, в которой отсутствует Age, получается:

1Name,Age,Member
2Ann Lee,29,true
3"Bo, Jr.",7,false
4Cy Tan,,true
5

Отсутствующее значение Age становится пустой ячейкой, а запятая в "Bo, Jr." приводит к повторному заключению поля в кавычки при записи.

Распространённые применения

  • Анализ данных: преобразование CSV-экспорта из электронной таблицы или аналитического инструмента в JSON для обработки с помощью JavaScript с последующим преобразованием результатов обратно в CSV для отчёта.
  • Тестирование API: разработчик, создающий API для приёма CSV-файлов, может преобразовать примеры файлов в JSON и проверить, создаёт ли анализатор ожидаемые объекты.
  • Миграция данных: перенос записей из системы, экспортирующей CSV, в систему, принимающую только JSON, или в обратном направлении.
  • Быстрая проверка: преобразование файла JSON в табличный CSV для более удобного чтения или выполнение обратного преобразования.

Библиотеки программирования выполняют такое же преобразование для крупных или повторяющихся задач, например модули csv и json в Python или библиотека pandas. Инструменты командной строки, такие как csvkit и jq, выполняют преобразование и фильтрацию в терминале. Эти варианты подходят для пакетной обработки, а данный браузерный инструмент — для разового преобразования файла без установки программ.

Часто задаваемые вопросы

Отправляется ли загруженный файл на сервер? Нет. Преобразование выполняется на JavaScript внутри вкладки браузера. Файл считывается с локального устройства и никогда не передаётся.

Поддерживает ли конвертер разделители, отличные от запятой, например точку с запятой или табуляцию? Нет. Текущая версия считывает только значения, разделённые запятыми. Файл с другим разделителем сначала нужно преобразовать в формат с разделителями-запятыми, например заменив разделитель в текстовом редакторе.

Почему число вроде 00512 осталось текстовой строкой в выходных данных JSON? Ведущие нули обычно имеют смысл, как в почтовом индексе, поэтому конвертер сохраняет это значение как строку, а не преобразует его в число 512, при преобразовании в которое ноль был бы потерян.

Что происходит при преобразовании JSON, содержащего вложенные объекты? Вложенный объект записывается как текст JSON в одной ячейке, например {"b":1}. Данные сохраняются, но не разделяются на отдельные столбцы. Если для каждого поля нужен отдельный столбец, сначала разверните вложенные данные.

Что произойдёт, если мой JSON не является массивом объектов? Инструмент показывает ошибку и ничего не преобразует. Входные данные должны быть массивом JSON, каждый элемент которого является объектом, например [{"a":1},{"a":2}].

Первая строка CSV-файла всегда должна быть строкой заголовков? Да. Конвертер всегда рассматривает первую строку как имена столбцов. Если в файле нет строки заголовков, первая строка данных будет ошибочно прочитана как заголовки.

Источники

  1. Shafranovich, Y. "Common Format and MIME Type for Comma-Separated Values (CSV) Files." RFC 4180, IETF, октябрь 2005. https://www.rfc-editor.org/rfc/rfc4180
  2. Bray, T., ред. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259, IETF, декабрь 2017. https://www.rfc-editor.org/rfc/rfc8259
  3. "Working with JSON." MDN Web Docs, Mozilla. https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/JSON