Skip to content

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

Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.

Без отслеживания Работает в браузере Бесплатно
Пресет
Настройки · , · auto · LF · header · no BOM · flatten
Разделитель
Первая строка — заголовок
Определять типы (числа, булевы, null)
0 симв. 0 строк
Вывод JSON
0 строк · 0 кол.
Проверено на соответствие RFC 4180, корректность определения типов, сохранение точности больших целых и поведение автоматических имён без заголовка — Команда инженеров Go-Tools · May 9, 2026

Что такое JSON и зачем конвертировать из CSV?

JSON (JavaScript Object Notation) — универсальный формат для ответов API, конфигурации и обмена структурированными данными: каждый современный язык программирования, каждая БД и каждый веб-фреймворк имеют первоклассную поддержку JSON. CSV (значения, разделённые запятыми), напротив, — старейший и самый широко поддерживаемый табличный формат: каждое табличное приложение, каждый экспорт БД и каждый аналитический инструмент могут его создать. Конвертация между ними — одна из самых частых рутинных задач в data engineering: вы получаете CSV из таблицы, дампа БД или стороннего экспорта, а нужен JSON, чтобы накормить API, гидратировать фронтенд или загрузить в NoSQL-хранилище. Этот инструмент сделан под этот путь конвертации и обрабатывает четыре сценария, которые большинство онлайн-конвертеров портят.

Четыре важных отличия этого инструмента от типичных онлайн-конвертеров CSV-в-JSON:

**1. Парсер RFC 4180 на конечном автомате.** CSV выглядит просто, но правила экранирования тонкие: поле в двойных кавычках может содержать запятые, вложенные переносы строк и экранированные двойные кавычки (удвоением, как ""). Наивные парсеры split-by-comma ломаются на реальных данных — адресах с запятыми, многострочных текстовых полях и значениях в кавычках с кавычками внутри. Этот инструмент реализует полноценный парсер на конечном автомате по RFC 4180 (спецификация IETF для CSV), корректно обрабатывая поля в кавычках, вложенные разделители, вложенные окончания строк и экранированные кавычки в обе стороны. Вывод обратим через модуль csv в Python, PostgreSQL COPY, AWS S3 SELECT и любой совместимый парсер.

**2. Определение типов с безопасностью больших целых.** С включённым «Определять типы» числовые строки становятся числами, true/false — булевыми, пустые ячейки — null. Но конвейер обнаружения имеет две важные защиты: строки с ведущими нулями (007, 0123) сохраняются как строки, потому что ведущие нули указывают на идентификаторы — преобразование в число молча обрежет их. И целые выше 2^53 - 1 (9007199254740991) тоже сохраняются как строки, чтобы избежать потери точности IEEE 754. Snowflake-ID Twitter, ID Discord, поля Long в MongoDB и resourceVersion в K8s — все остаются точными вместо молчаливого округления. ISO-строки дат намеренно сохраняются как строки — у JSON нет нативного типа дат.

**3. Автоматические имена заголовка или использование первой строки.** С включённым «Заголовок» (по умолчанию) первая строка трактуется как имена колонок, и каждая последующая становится JSON-объектом с этими ключами. С отключённым «Заголовок» парсер автоматически именует колонки col1, col2, col3 — полезно для сырых выгрузок без строки заголовка. Строка чипов разделителя покрывает четыре самых частых разделителя: запятая (по умолчанию RFC 4180), точка с запятой (локали Excel-EU), Tab (TSV из Unix-инструментов и хранилищ данных) и вертикальная черта (поля с большим числом запятых). Выбирайте чип и разбирайте — без ручной настройки для типичных реальных CSV.

**4. 100% приватность в браузере.** Ваши CSV-данные — часто содержат PII пользователей, внутренние экспорты БД, записи клиентов и production-экспорты — никогда не покидают браузер. Никакие данные не отправляются на сервер, нет логирования, нет аналитики, перехватывающей ввод. Это можно проверить через вкладку Network браузера. Это единственный безопасный способ обработки чувствительных данных в онлайн-инструменте. Посмотрите обратное направление через «Поменять направление» или используйте парный конвертер JSON в CSV, когда ваша цель — CSV. Нужно проверить JSON-вывод перед использованием? Попробуйте наш форматировщик JSON.

Сильные стороны JSON — точные типы, нативная вложенность и строгая спецификация, парсящаяся одинаково везде — правильный формат, когда машина потребляет данные. Сильные стороны CSV — универсальность и человекочитаемость — правильный формат, когда человек открывает таблицу. Правильный инструмент зависит от потребителя: человек читает таблицу — CSV, машина потребляет API — JSON. Этот конвертер обеспечивает мост в обоих направлениях.

// Input CSV (comma + LF, header on, infer types on)
id,name,active,score
1,Alice,true,98.5
2,Bob,false,87
3,Carol,true,

// Output JSON
[
  { "id": 1, "name": "Alice", "active": true, "score": 98.5 },
  { "id": 2, "name": "Bob", "active": false, "score": 87 },
  { "id": 3, "name": "Carol", "active": true, "score": null }
]

// Same input with Header off (no first-row keys)
1,Alice,true,98.5
2,Bob,false,87

// Becomes
[
  { "col1": 1, "col2": "Alice", "col3": true, "col4": 98.5 },
  { "col1": 2, "col2": "Bob", "col3": false, "col4": 87 }
]

Ключевые возможности

Парсер RFC 4180 на конечном автомате

Строгий парсер на конечном автомате по спецификации CSV от IETF: корректная обработка полей в кавычках, вложенных разделителей, вложенных CR/LF и экранированных двойных кавычек (удвоением). Вывод чисто проходит round-trip через Python csv, PostgreSQL COPY и AWS S3 SELECT.

Определение типов с безопасностью больших целых

Включённое «Определять типы» превращает числовые строки в числа, true/false — в булевы, пустые ячейки — в null. Целые выше 2^53 - 1 остаются строками, чтобы избежать потери точности IEEE 754; строки с ведущими нулями (007, 0123) остаются строками, чтобы сохранить семантику идентификатора.

Заголовок вкл./выкл. с автоматическими именами

Включённый «Заголовок» (по умолчанию) использует первую строку как ключи JSON. Отключённый «Заголовок» автоматически именует колонки col1, col2, col3 по порядку — полезно для сырых выгрузок и машинно-сгенерированных CSV без строки заголовка. Автоматические имена детерминированы и удобны для конвейера.

Запятая, точка с запятой, Tab, вертикальная черта

Чипы разделителя в один клик для четырёх самых частых разделителей: `,` (по умолчанию RFC 4180), `;` (локали Excel-EU), `\t` (TSV из Unix-инструментов, BigQuery, Snowflake) и `|` (поля свободного текста с большим числом запятых). Парсер немедленно переключает режимы — конвертировать файлы заранее не нужно.

Обнаружение больших целых

Целые выше 2^53 находятся при разборе и сохраняются как строки в JSON — snowflake-ID Twitter, ID Discord, поля Long в MongoDB и resourceVersion в K8s остаются точными вместо молчаливого округления типом Number IEEE 754 в JavaScript.

Двунаправленность через Swap

Одна кнопка «Поменять направление» переворачивает конвертацию на месте: вход становится JSON, вывод — CSV, текущий текст сохраняется. Прогоняйте данные round-trip в обе стороны, чтобы проверить конвертацию без потерь перед отправкой в конвейер.

Примеры

Экспорт таблицы с заголовком

id,name,email,role
1,Alice,alice@example.com,admin
2,Bob,bob@example.com,editor
3,Carol,carol@example.com,viewer
4,Dan,dan@example.com,viewer

Стандартный CSV из таблицы. С включённым «Заголовок» и «Определять типы» получаете чистый типизированный JSON: целые остаются целыми, булевы и null определяются автоматически.

Журнал с разделителем Tab (TSV)

ts	event	user	duration
2026-05-09T10:00:00Z	signup	alice	142
2026-05-09T10:01:00Z	login	alice	87
2026-05-09T10:02:00Z	checkout	alice	312
2026-05-09T10:03:00Z	logout	alice	44

Выберите `\t` (Tab) в качестве разделителя. По умолчанию «Заголовок» включён и автоматически использует первую строку как ключи.

Excel-EU CSV (точка с запятой, CRLF)

id;name;price
1;Alice;1234,56
2;Bob;9876,54
3;Carol;42,00

Excel в локалях DE/FR/IT/ES выдаёт `;` как разделитель, потому что запятая — десятичный знак. Выберите `;` в чипе разделителя — парсер сделает остальное.

Запятые внутри полей и экранированные кавычки

name,role,note
"Smith, Jr.",admin,"He said ""hi"""
"Doe, Jane",editor,"Two
lines"

Стандартное экранирование RFC 4180: поля в кавычках могут содержать разделители и экранированные кавычки (удвоением). Парсер — конечный автомат, он никогда не делит внутри кавычек.

CSV с большими целыми ID

id,event,user
9007199254740993,signup,alice
9007199254740994,login,bob
9007199254740995,checkout,carol

Большие целые превышают безопасный диапазон JavaScript (2^53 - 1). С включённым «Определять типы» парсер находит это и сохраняет значение как строку, чтобы сохранить точность — без обрезания.

CSV без заголовка

1,Alice,admin
2,Bob,editor
3,Carol,viewer
4,Dan,viewer

Отключите «Заголовок»; колонки автоматически именуются `col1`, `col2`, `col3`. Используйте это для сырых выгрузок без строки заголовка.

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

  1. 1

    Вставьте CSV

    Введите или вставьте CSV в поле ввода выше. Инструмент принимает данные с разделителем «запятая», «точка с запятой», Tab и вертикальная черта. Можно нажать «Загрузить пример», чтобы попробовать на образце — экспорте таблицы, журнале TSV или Excel-EU CSV с точкой с запятой.

  2. 2

    Выберите разделитель (или Tab)

    Нажмите `,` (по умолчанию), `;` (Excel-EU точка с запятой), `\t` (TSV) или `|` (вертикальная черта), чтобы переключить разделитель одним кликом. Откройте панель «Настройки» для тонкого контроля: «Заголовок» вкл./выкл. и «Определять типы» вкл./выкл. Отключённый «Заголовок» автоматически именует колонки col1, col2, col3.

  3. 3

    Скопируйте или скачайте JSON

    Нажмите «Скопировать», чтобы поместить JSON в буфер обмена, или «Скачать», чтобы сохранить как .json для кода, API или конвейера. Для round-trip нажмите «Поменять направление», чтобы преобразовать JSON обратно в CSV на месте.

Типичные ловушки конвертации

Запятая внутри поля без кавычек в источнике

Если ваш CSV построен вручную через наивный join(','), любое поле с запятой (Smith, Jr. или 1,234.56) сломает границы колонок — парсер увидит лишние колонки, где должна быть одна. Решение — обернуть проблемное поле в двойные кавычки по RFC 4180. Этот инструмент корректно обрабатывает поля в кавычках, но исходный CSV должен использовать корректное экранирование.

✗ Неверно
name,role
Smith, Jr.,admin
// Parser reads 3 columns: "Smith", " Jr.", "admin"
✓ Верно
name,role
"Smith, Jr.",admin
// Parser reads 2 columns: "Smith, Jr.", "admin"

Excel-EU точка с запятой разобрана как запятая

Европейские локали Excel (Германия, Франция, Испания, Италия и др.) выдают CSV с разделителем «точка с запятой», потому что запятая зарезервирована за десятичным разделителем. Если оставить разделитель `,` (по умолчанию), каждая строка схлопывается в одну колонку с точками с запятой внутри. Выберите чип `;` — парсер переключится в режим точки с запятой и выдаст корректные колонки.

✗ Неверно
// Wrong delimiter (default comma) on Excel-EU file
id;name;price
1;Alice;1234,56
// Each row becomes one column: { col1: "1;Alice;1234,56" }
✓ Верно
// Correct: pick `;` Delimiter chip
id;name;price
1;Alice;1234,56
// Output: { id: 1, name: "Alice", price: "1234,56" }

Большие целые ID теряют точность после JSON.parse

Snowflake-ID Twitter, ID Discord и другие 64-битные целые превышают безопасный диапазон JavaScript (2^53 - 1) и теряют точность, когда JSON.parse() читает их как числа. С включённым «Определять типы» инструмент находит значения за безопасной границей и сохраняет их как строки, оставляя цифры точными. Используйте BigInt("9007199254740993") в коде, чтобы преобразовать обратно в числовой тип.

✗ Неверно
// Without big-int detection
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost)
✓ Верно
// With Infer types on, big integers stay as strings
{"id": "9007199254740993"}
// Use BigInt(value) in code to preserve precision

Строка заголовка содержит пробелы

Если заголовок CSV — `id, name, email` (с пробелами после запятых), ключи JSON становятся "id", " name", " email" — включая ведущий пробел. Парсер сохраняет заголовок ровно как дано, по RFC 4180. Решение — либо очистить исходный CSV перед вставкой, либо переименовать ключи downstream (jq 'with_entries(.key |= ltrimstr(" "))' или JavaScript Object.fromEntries(Object.entries(o).map(([k,v]) => [k.trim(), v]))).

✗ Неверно
id, name, email
1, Alice, alice@example.com
// Output keys: "id", " name", " email" (with leading spaces)
✓ Верно
id,name,email
1,Alice,alice@example.com
// Output keys: "id", "name", "email" (clean)

Несогласованная длина строк

Когда строки в CSV имеют разное число колонок (одни с концевыми запятыми, другие без), парсер заполняет недостающие ячейки пустыми строками (или null, когда «Определять типы» включено) и отбрасывает лишние сверх длины заголовка. Появляется предупреждение Schema notes, чтобы вы знали, что строки нормализованы. Обычно это нормально, но проверьте вывод, если downstream-потребители ждут строгую форму строк.

✗ Неверно
name,role,note
Alice,admin
Bob,editor,first day
// Row 1 is short by one cell
✓ Верно
// Output (note empty/null cell in row 1)
[
  { "name": "Alice", "role": "admin", "note": null },
  { "name": "Bob", "role": "editor", "note": "first day" }
]

Строки дат неожиданно преобразуются

ISO 8601 строки дат (2026-05-09T10:00:00Z) намеренно сохраняются как строки в JSON-выводе — у JSON нет нативного типа дат, и преобразование породило бы либо JavaScript-объект Date, который не переживает сериализацию, либо числовой epoch, теряющий информацию о часовом поясе. Это по задумке. Разбирайте даты в момент использования через new Date(value) или вашу библиотеку дат. Не отключайте «Определять типы» только ради сохранения дат — это также сохранит числа как строки.

✗ Неверно
// Expecting a Date object in the output
ts,event
2026-05-09T10:00:00Z,signup
// Output ts is the string "2026-05-09T10:00:00Z", NOT a Date
✓ Верно
// Correct: parse at the point of use in your code
const rows = JSON.parse(output);
const when = new Date(rows[0].ts);
// when is now a Date object

Типичные сценарии

Экспорт таблицы в импорт API
Вставьте CSV, экспортированный из Excel, Google Sheets или Numbers, и получите массив JSON-объектов, готовый для POST в REST API, GraphQL-мутации или эндпоинта массового импорта. Самый частый сценарий — аналитики выдают данные таблицы, инженерам нужен типизированный JSON для бэкенда.
Excel-экспорт в инструменты
Конвертируйте экспорты Excel CSV (включая Excel-EU файлы с точкой с запятой через чип `;`) в JSON для обработки JavaScript-инструментами, jq-скриптами или любой системой, читающей JSON. Парсер корректно обрабатывает удаление BOM и окончания строк CRLF, чтобы экспорты Excel не ломались на первой строке.
TSV-журнал в аналитику
Журналы с разделителем Tab из экспортов BigQuery, разгрузок Snowflake, конвейеров Vector или Unix-инструментов (cut, awk) часто приходят как .tsv. Выберите чип Tab — и получите типизированный массив JSON, готовый для ad-hoc анализа, загрузки в дашборд или трансформации в стадии конвейера.
CSV-дамп БД в ETL
Конвертируйте вывод PostgreSQL COPY TO CSV, MySQL SELECT INTO OUTFILE или любой CSV-дамп БД в JSON для загрузки в NoSQL-хранилище, подачи в JavaScript ETL-конвейер или отправки в BigQuery как line-delimited JSON. Обнаружение больших целых сохраняет числовые ID, превышающие безопасный диапазон JavaScript.
Потребление CSV-результатов тестов Postman/Newman
Прогоны тестов Postman экспортируют CSV-отчёты с pass/fail на запрос. Конвертируйте в JSON для программного потребления — подавайте в дашборд статуса, конвейер уведомлений или агрегатор результатов. Строки разной формы (упавшие тесты имеют дополнительную колонку error) обрабатываются заполнением пустых/null.
Маленький CSV в быстрый JSON-конфиг
Есть маленький CSV с константами — коды валют, названия стран, продуктовые SKU — и нужен JSON-массив для конфигурационного файла или JavaScript-константы? Вставьте, скопируйте, вставьте. С включённым «Определять типы» числа и булевы типизированы корректно; с включённым «Заголовок» получаете массив объектов с именованными полями, готовый для .json.

Технические детали

Внутренности парсера RFC 4180 на конечном автомате
Парсер — полноценная реализация конечного автомата по RFC 4180. Состояния включают UnquotedField, QuotedField, AfterQuote, RowEnd и EndOfInput. Парсер корректно обрабатывает поля в кавычках с разделителем внутри, вложенные CR/LF в полях в кавычках, экранированные двойные кавычки (удвоением, как "") и концевые переносы строк. На выходе — round-trip без потерь через модуль csv в Python, PostgreSQL COPY, AWS S3 SELECT и любой совместимый парсер. Конечный автомат разделитель-aware, поэтому переключение с `,` на `;` или `\t` не меняет семантику экранирования — только разделитель полей.
Алгоритм определения типов
С включённым «Определять типы» каждая ячейка проходит упорядоченный конвейер обнаружения. Во-первых, пустая ячейка становится JSON null. Во-вторых, литералы true и false становятся JSON-булевыми. В-третьих, строки с ведущими нулями (^0[0-9]+$) сохраняются как строки, чтобы сохранить семантику идентификатора — преобразование в числа молча обрежет ведущие нули. В-четвёртых, целочисленные литералы проверяются по границе безопасного целого (-2^53+1 до 2^53-1); значения вне диапазона сохраняются как строки, чтобы избежать потери точности IEEE 754. В-пятых, ISO 8601 строки дат находятся регуляркой и намеренно сохраняются как строки — у JSON нет нативного типа дат. Всё, что прошло пять защит, преобразуется через Number() (числовое) или сохраняется как строка (всё остальное).
Удаление BOM и обработка кодировки
Весь ввод трактуется как UTF-8. Необязательный UTF-8 BOM (0xEF 0xBB 0xBF) молча удаляется из первой ячейки первой строки, когда присутствует — это предотвращает попадание байтов BOM как лишнего символа в начале имени первой колонки (Excel в Windows часто выдаёт BOM, ломая наивные парсеры). Другие кодировки (Windows-1252, ISO-8859-1) автоматически не определяются; браузерный File API уже декодировал бы байты как UTF-8 к моменту, когда текст попадает в инструмент. Если у вас вход не в UTF-8, сначала конвертируйте его через iconv или опцию экспорта кодировки вашего редактора перед вставкой.

Лучшие практики

Явно выбирайте разделитель для не-запятых
Не полагайтесь на авто-определение. Если в CSV точки с запятой (Excel-EU), табы (TSV из BigQuery, Snowflake или Unix-инструментов) или вертикальные черты (поля с большим числом запятых), нажмите соответствующий чип разделителя перед вставкой. Парсер разделитель-aware: переключение чипа немедленно перезапускает разбор. Это убережёт от самой частой неудачи CSV-в-JSON, когда каждая строка схлопывается в одну ячейку, потому что парсер использовал не тот разделитель.
Держите «Определять типы» включённым для типизированного JSON
С включённым «Определять типы» (по умолчанию) получаете типизированный JSON: числа как числа, булевы как булевы, null там, где пустые ячейки. Этого хочет большинство потребителей — API, фронтенды, JavaScript-код. Отключайте «Определять типы» только тогда, когда нужно каждую ячейку как строку (downstream-потребители со строгой типизацией, валидационные конвейеры, сравнивающие точные исходные байты). У конвейера обнаружения есть защиты для строк с ведущими нулями, больших целых и ISO-дат, поэтому идентификаторы и даты остаются в безопасности даже с включённым определением.
Закавычивайте ID как строки в upstream CSV
Если CSV генерируется БД или конвейером, который вы контролируете, выводите большие числовые ID (snowflake-ID Twitter, ID Discord, resourceVersion в K8s) как закавыченные CSV-строки ("9007199254740993"), чтобы они чисто прошли через определение типов. Парсер сохранит их как строки в любом случае (обнаружение больших целых ловит значения выше 2^53 - 1), но явное закавычивание — самый надёжный upstream-контракт и устраняет любую двусмысленность точности.
Строка заголовка должна быть первой строкой
Включённый «Заголовок» (по умолчанию) автоматически определяет первую строку как имена колонок. Если в CSV есть комментарии, пустые строки или метаданные перед заголовком, удалите их перед вставкой — парсер не пропускает ведущие не-данные строки. Для CSV без заголовка (сырые экспорты, машинно-сгенерированные дампы) отключите «Заголовок», и колонки будут автоматически именованы col1, col2, col3 по порядку. Не пытайтесь подделать заголовок, добавив его перед файлом без заголовка; либо отключите «Заголовок», либо исправьте источник.
Используйте режим Stringify для round-trip CSV → JSON → CSV
Если вы планируете прогнать данные round-trip через оба направления (CSV → JSON → CSV), обратное направление (JSON → CSV) требует режима Stringify, чтобы любые вложенные массивы или объекты выжили без потерь. Режим Flatten в обратном направлении выдаёт ключи через точку (customer.address.city), которые невозможно безупречно восстановить парсером CSV. См. наш конвертер JSON в CSV для полной справки по обратному направлению и заметок по тестированию round-trip.

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

Что делает этот инструмент?
Он конвертирует CSV в JSON прямо в браузере с двусторонней поддержкой: нажмите «Поменять направление», чтобы преобразовать JSON обратно в CSV в той же панели. Вставьте CSV в поле ввода — инструмент мгновенно выдаст JSON: без загрузки, без регистрации, ничего не покидает ваше устройство. Парсер соответствует RFC 4180, обрабатывает чипы разделителей для запятой, точки с запятой (Excel-EU), Tab (TSV) и вертикальной черты, а опция «Определять типы» превращает числовые строки в числа, true/false — в булевы, а пустые ячейки — в null. Инструмент также обрабатывает большие целые ID, которые иначе потеряли бы точность через JSON.parse, запятые внутри полей в кавычках, экранированные двойные кавычки (удвоением) и данные без заголовка с автоматически именованными колонками (col1, col2, col3).
Загружаются ли мои данные куда-либо?
Нет. Вся конвертация происходит на 100% в браузере на JavaScript. Ваши CSV-данные не передаются по сети, не сохраняются на сервере, не логируются и не анализируются. Это делает инструмент безопасным для экспортов таблиц с PII, внутренних дампов БД, записей клиентов и любых чувствительных данных. Это можно проверить через вкладку Network браузера — вставка CSV не вызывает ни одного сетевого запроса. Инструмент не использует cookie для ваших данных и стороннюю аналитику, которая могла бы перехватить введённое.
Как работает определение типов?
С включённым «Определять типы» каждая разобранная ячейка проходит небольшой конвейер обнаружения перед попаданием в JSON: числовые строки (1, 42, -3.14) становятся числами, true/false — булевыми, пустые строки и литерал null — JSON null, всё остальное остаётся строкой. Есть две важные защиты. Во-первых, строки с ведущими нулями вроде 007 или 0123 сохраняются как строки, даже если выглядят числовыми — ведущие нули указывают на идентификатор (почтовые индексы, телефонные коды, последовательные ID), и преобразование в число молча обрежет нули. Во-вторых, целые выше 2^53 - 1 (9007199254740991) тоже сохраняются как строки, чтобы избежать потери точности IEEE 754. ISO-строки дат (2026-05-09T10:00:00Z) намеренно остаются строками — у JSON нет нативного типа дат, и преобразование породило бы JavaScript-объект Date, который не переживает сериализацию.
Почему большие целые сохраняются как строки?
Тип Number в JavaScript использует IEEE 754 double-precision и может точно представить целые только до 2^53 - 1 (9007199254740991). Реальные идентификаторы — snowflake-ID Twitter, ID Discord, поля Long в MongoDB, resourceVersion в K8s — это 64-битные целые, выходящие за безопасный диапазон. Если бы парсер вызвал Number() на них, результат молча округлился бы (9007199254740993 стало бы 9007199254740992). Конвейер «Определять типы» находит значения за границей безопасного целого и сохраняет их как строки, чтобы цифры выжили нетронутыми. Под выводом появляется баннер с перечнем затронутых полей. Чтобы точно преобразовать обратно в коде, используйте BigInt("9007199254740993") на строковом значении JSON.
Мой CSV использует точку с запятой — как его разобрать?
Европейские локали Excel (Германия, Франция, Испания, Италия и др.) выдают CSV с разделителем «точка с запятой», потому что запятая зарезервирована за десятичным разделителем. Нажмите чип `;` в строке разделителя (или откройте полную панель «Настройки» и выберите `;`) — парсер немедленно переключится в режим точки с запятой. Числовые значения с запятой-десятичной (1234,56) внутри таких файлов сохраняются как строки в режиме определения типов, потому что европейская десятичная нотация локально-специфична — преобразуйте их в коде, если нужны числовые значения. Парсер по-прежнему применяет правила экранирования RFC 4180 с новым разделителем, поэтому поля в кавычках с точкой с запятой внутри обрабатываются корректно.
Поддерживается ли TSV (с разделителем Tab)?
Да. Нажмите чип Tab в строке разделителя — парсер будет делить по символам табуляции вместо запятых. TSV — самый чистый формат для обмена CSV между локалями, потому что Tab вряд ли встретится внутри текстовых полей, что устраняет большинство краевых случаев экранирования. Это вывод по умолчанию у Unix-инструментов (cut, awk), хранилищ данных (BigQuery, Snowflake) и хорошо поддерживается Excel в любой локали. Вставляйте содержимое .tsv или .tab напрямую — остальная часть парсера (автоматические имена заголовков, определение типов, обнаружение больших целых) работает идентично.
Что делать, если в моём CSV нет строки заголовка?
Отключите «Заголовок» в панели «Настройки». Парсер будет считать первую строку данными, а не именами колонок, и автоматически сгенерирует ключи: col1, col2, col3 … по одному на колонку. Выходной JSON — массив объектов с этими синтетическими ключами. Это полезно для сырых экспортов из БД без заголовка, плоских файлов с фиксированным форматом и машинно-сгенерированных CSV. Если нужны другие имена ключей, конвертируйте с автоматическими именами, затем переименуйте ключи в downstream-конвейере (jq, JavaScript map и т. д.). Инструмент не выводит ключи из эвристик данных — отключённый «Заголовок» всегда выдаёт col1, col2, col3.
Обрабатываются ли поля в кавычках с запятыми внутри?
Да. Парсер — настоящий конечный автомат RFC 4180: увидев открывающую двойную кавычку, он переключается в состояние QuotedField и считает всё до следующей неэкранированной двойной кавычки одним полем, включая разделители и вложенные окончания строк (CR/LF). Экранированные двойные кавычки (удвоением, как "") корректно сворачиваются в одну. Это значит, что `"Smith, Jr."` разбирается как одно поле со значением `Smith, Jr.`, а `"He said ""hi"""` — как `He said "hi"`. Наивные парсеры split-by-comma ломаются на таких реальных данных; этот инструмент — нет.
Почему мои даты сохраняются как строки?
По задумке. У JSON нет нативного типа дат — только строки, числа, булевы, null, массивы и объекты. ISO 8601 строки дат (2026-05-09T10:00:00Z) сохраняются дословно как строки в JSON-выводе, что и есть корректное представление без потерь. Если бы парсер преобразовал их в JavaScript-объекты Date, сериализация получившегося JSON выдала бы другой вывод (объект без полезного round-trip представления или числовой timestamp). Держите даты как строки в JSON и разбирайте их в момент использования через new Date(value) или вашу библиотеку дат. Это совпадает с поведением каждого крупного конвейера JSON-from-CSV: Pandas, jq и модулей csv + json в Python.
Что произойдёт, если строки имеют разную длину?
Строки разной формы (одни с большим, другие с меньшим числом колонок, чем заголовок) дополняются под длину заголовка. Лишние ячейки сверх количества заголовка отбрасываются, а недостающие устанавливаются в пустую строку (или null, когда «Определять типы» включено и парсер видит пустое значение). Под выводом появляется предупреждение Schema notes — вы знаете, что строки нормализованы. Обычно это нормально для downstream-инструментов, объединяющих ключи, но проверьте вывод, если потребитель ожидает строгую согласованность формы строк. Самая частая причина — концевые запятые в некоторых строках или поля в кавычках с вложенными окончаниями строк, неправильно подсчитанные upstream-экспортёрами.
Какого размера файл можно вставить?
Свыше 100 000 символов или 2 000 строк live-конвертация автоматически переключается в ручной режим: в информационном баннере появляется кнопка «Конвертировать», и преобразование запускается только при клике. Это предотвращает блокировку основного потока браузера на каждое нажатие клавиши при тяжёлом разборе. Для вывода больше 5 МБ или 50 000 строк инструмент усекает экранный предпросмотр JSON до первых 500 строк и показывает баннер «Показаны первые 500 из N строк» — но кнопка «Скачать» по-прежнему создаёт полный файл со всеми строками. Жёсткий верхний предел — 10 МБ ввода; выше инструмент показывает ошибку и просит сократить ввод.
Можно ли пройти round-trip JSON → CSV → JSON?
Да, когда JSON плоский (без вложенных объектов и массивов). Для вложенных данных обратное направление (JSON → CSV) требует режима Stringify, чтобы массивы и объекты сохранились как JSON в одной ячейке — что затем без потерь возвращается через этот конвертер CSV → JSON, когда «Определять типы» включено. Нажмите «Поменять направление» наверху панели, чтобы перейти в режим JSON-в-CSV и проверить round-trip. Режим Flatten в обратном направлении односторонний: он выдаёт ключи через точку (customer.address.city), которые невозможно безупречно восстановить из CSV. См. наш конвертер JSON в CSV для обратного направления с полной поддержкой Stringify.

Похожие инструменты

Все инструменты →

Base64 декодер и кодировщик

Кодирование и форматирование

Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.

JSON Diff и сравнение

Кодирование и форматирование

Сравнивайте два JSON-файла мгновенно в браузере. Side-by-side подсветка, вывод JSON Patch (RFC 6902), игнорирование шума вроде timestamp и ID. 100% приватно, без загрузки.

Форматировщик и валидатор JSON

Кодирование и форматирование

Форматирование, проверка и улучшение читаемости JSON прямо в браузере. Бесплатный онлайн-инструмент с проверкой синтаксиса, поиском ошибок, минификацией и копированием в один клик. Полная приватность.

Валидатор JSON Schema

Кодирование и форматирование

Проверяйте JSON по любой JSON Schema мгновенно в браузере. Поддержка Draft 2020-12, 2019-09 и Draft-07 с точными путями ошибок. 100% приватно — без загрузки, без аккаунта, бесплатно.

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

Кодирование и форматирование

Конвертируйте JSON в CSV в браузере. Пресеты RFC 4180, Excel-EU, TSV, Pipe. Flatten или Stringify. 100% приватно, без загрузки.

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

Кодирование и форматирование

Вставьте JSON, получите YAML мгновенно. Live-конвертация в браузере. Готово для K8s/Compose, отступ 2/4 пробела, умное экранирование. 100% приватно, без загрузки.