Конвертер CSV в JSON
Преобразуйте таблицу CSV в JSON без угадывания чисел, логических значений или null. Вставьте текст или выберите локальный файл UTF-8, укажите объекты или массивы и скопируйте либо скачайте проверенный результат.
Преобразование таблицы без угадывания типов
- Выберите вставленный CSV или локальный файл. Файл должен быть в UTF-8, иметь расширение .csv, .tsv или .txt и размер не более 5 MiB. Явно выберите разделитель: по умолчанию используется запятая; доступны также точка с запятой, табуляция и вертикальная черта. Имя файла TSV не выбирает табуляцию автоматически.
- Выберите «Объекты», чтобы использовать первую запись как точные имена заголовков, или «Массивы», чтобы сохранить каждую запись как данные. Для объектов нужны уникальные непустые заголовки и одинаковое число полей в строках. Массивы допускают разное число полей. Кнопка примера заполняет таблицу с идентификатором, именем и состоянием и ожидает нажатия «Преобразовать».
- Нажмите «Преобразовать» и проверьте число записей данных, сведения о числе полей и фактический размер результата в UTF-8. Подробности преобразования связывают разобранные поля с выбранным представлением JSON. Копирование и скачивание используют полный результат, даже если предпросмотр неполный. Очистка удаляет оба источника и восстанавливает настройки по умолчанию.
Строки, заголовки и точные значения полей
Каждая ячейка остаётся строкой, включая 00042, 9007199254740993, true, false, null, пустые поля и текст, похожий на формулу. Преобразование числовой точности, замена на null, вычисление формул и вывод вложенной структуры из заголовка не выполняются.
Разделитель внутри двойных кавычек остаётся в одном поле. Две двойные кавычки подряд превращаются в одну, а встроенные CRLF, LF или CR сохраняются в разобранной строке. Пробелы являются данными. Лишняя или незакрытая кавычка либо текст после закрывающей кавычки приводят к ошибке, а не исправляются. Последний разделитель записей не создаёт лишнюю строку; дополнительные пустые записи сохраняются.
Заголовки объектов сохраняют точное написание и пробелы, но имя, состоящее только из пробельных символов, удаляемых trim, отклоняется. Полностью повторяющиеся имена отклоняются, но A и a, а также составные и разложенные варианты имён с диакритикой остаются различными. Имена __proto__, constructor и 2 — обычные плоские ключи. Члены выводятся в порядке столбцов; получатель JSON может перечислять имена иначе.
Результат имеет отступы в два пробела, окончания строк LF и один завершающий LF, кодируется в UTF-8 без добавления BOM. Одна начальная сигнатура UTF-8 файла или один начальный U+FEFF во вставленном тексте удаляется согласно правилам инструмента; дополнительные U+FEFF остаются содержимым. Сигнатуры UTF-16/32 и некорректный UTF-8 не угадываются и не исправляются. Экранирование JSON сохраняет встроенные управляющие символы, а не удаляет их.
Примеры двух представлений
Предоставленный пример из трёх записей содержит заголовки id, name и active и две записи данных. Режим объектов создаёт два объекта и 150 байт UTF-8, сохраняя 00042 и длинный идентификатор как строки. Запятая в кавычках в A, B не добавляет четвёртый столбец, а true остаётся строкой true.
Режим массивов для того же примера создаёт три массива и 146 байт UTF-8. Первый массив содержит id, name и active как значения, а не ключи. Короткая строка или пустая запись сохраняется в этом режиме с фактическим числом полей.
Корректный ввод только с заголовком создаёт пустой массив JSON с завершающим LF: три байта и ни одного объекта данных. Это успешный результат, доступный для экспорта, в отличие от пустого источника или источника только с сигнатурой без записей CSV. Пустая запись данных под заголовком из одного столбца становится пустой строкой; под более широким заголовком возникает ошибка числа полей.
Ограничения ввода, вывода и предпросмотра
Размер файла ограничен 5242880 байтами. Декодированный или вставленный текст должен укладываться в 5000000 единиц UTF-16, 50000 физических последовательностей CRLF/LF/CR, включая содержимое в кавычках, 50000 логических записей с заголовком, 256 столбцов на запись и 2000000 разобранных ячеек. CRLF считается одним физическим окончанием строки. Это явные ограничения ресурсов, а не числа видимых символов.
Полный форматированный JSON должен занимать не более 16777216 байт UTF-8. Операция рабочего потока продолжительностью более 15000 миллисекунд прерывается без частичного скачивания. Повторяющиеся длинные заголовки и экранированные управляющие символы могут привести к превышению ограничения вывода даже при допустимом CSV. Ограничения не гарантируют расход памяти или скорость на каждом устройстве.
Предпросмотр JSON по умолчанию показывает не более 100000 скалярных символов Unicode и явно отмечает неполный просмотр. Полное копирование и скачивание текущего результата сохраняют все принятые поля. При отказе доступа к буферу обмена для ручного копирования показывается полный текущий текст только для чтения, а не только его начало. Предпросмотр полей в описании метода тоже может быть сокращён без изменения экспорта.
В этой версии нет ввода URL, автоматического определения разделителя, определения типов, комментариев, удаления директив, исправления CSV или преобразования старых кодировок. RFC 4180 описывает распространённый формат CSV, но не все его разновидности. Некорректный UTF-16 отклоняется; нормализацию, выполненную браузером или буфером обмена до вставки, отменить невозможно.
Локальное преобразование и текущий результат
Инструмент не добавляет загрузку документов, учётную запись, сохранённую историю, журналирование или ссылку для обмена с данными. Изменение текста, источника или настроек, выбор другого файла, отмена или очистка делают прежний результат недействительным. Существующие сервисы сайта остаются отдельными; локальная обработка не является их сертификацией и не гарантирует безопасного удаления данных.
Вопросы о преобразовании CSV в JSON
Источники
- rfc-editor.orgRFC 4180RFC 4180 описывает распространённый формат CSV; этот инструмент задаёт собственные правила разбора.
- rfc-editor.orgRFC 8259RFC 8259 описывает строки JSON и вопросы совместимости имён членов объектов.
- tc39.esECMAScript JSON.stringifyECMAScript определяет экранирование строк JSON.
- tc39.esECMAScript OrdinaryOwnPropertyKeysECMAScript описывает порядок свойств объектов; последующее перечисление может отличаться от порядка выведенных столбцов CSV.
- encoding.spec.whatwg.orgEncoding StandardСтандарт Encoding описывает строгое декодирование UTF-8 и сигнатуры.
Похожие инструменты
Конвертер JSON в CSV
Преобразуйте плоские записи JSON в таблицу локально, сохраняя порядок столбцов и запись чисел.
Открыть инструмент — Конвертер JSON в CSVКонвертер разделителей CSV
Меняйте разделитель CSV, проверяйте столбцы и замечайте проблемы импорта. CSV и TSV обрабатываются локально без изменения значений.
Открыть инструмент — Конвертер разделителей CSVСравнение двух CSV-файлов
Сопоставьте записи по ключевому столбцу и найдите добавленные, удалённые и изменённые записи.
Открыть инструмент — Сравнение двух CSV-файловНайти дубликаты CSV
Найдите повторяющиеся строки и спорные записи по ключу. Сохраните исходные значения и выгрузите результаты.
Открыть инструмент — Найти дубликаты CSVОбъединение CSV
Добавьте строки из нескольких CSV. Сопоставьте столбцы по названиям и скачайте результат с отчётом.
Открыть инструмент — Объединение CSVРазделение CSV
Разделите CSV по числу строк или точному размеру файла. Сохраните заголовки и скачайте части.
Открыть инструмент — Разделение CSV