Конвертер JSON в CSV
Конвертируйте JSON в CSV в браузере. Пресеты RFC 4180, Excel-EU, TSV, Pipe. Flatten или Stringify. 100% приватно, без загрузки.
Настройки · , · auto · LF · header · no BOM · flatten
Что такое CSV и зачем конвертировать из JSON?
CSV (значения, разделённые запятыми) — старейший и самый широко поддерживаемый табличный формат данных в вычислительной технике: каждое табличное приложение, каждая база данных, каждый аналитический инструмент и большинство языков программирования имеют первоклассную поддержку CSV. JSON, напротив, — универсальный формат для ответов API, конфигурации и обмена структурированными данными. Конвертация между ними — одна из самых частых рутинных задач в data engineering: вы получаете JSON от API или NoSQL-базы, а нужно загрузить CSV в Excel для анализа, в таблицу Postgres через COPY или в хранилище BigQuery / Snowflake. Этот инструмент сделан под этот путь конвертации и обрабатывает четыре сценария, которые большинство онлайн-конвертеров портят.
Четыре важных отличия этого инструмента от типичных онлайн-конвертеров:
**1. Парсер RFC 4180 на конечном автомате.** CSV выглядит просто, но правила экранирования тонкие: поле в двойных кавычках может содержать запятые, вложенные переносы строк и экранированные двойные кавычки (удвоением, как ""). Наивные парсеры split-by-comma ломаются на реальных данных — адресах с запятыми, многострочных текстовых полях и значениях в кавычках с кавычками внутри. Этот инструмент реализует полноценный парсер на конечном автомате по RFC 4180 (спецификация IETF для CSV), корректно обрабатывая поля в кавычках, вложенные разделители, вложенные окончания строк и экранированные кавычки в обе стороны. Вывод обратим через модуль csv в Python, PostgreSQL COPY, AWS S3 SELECT и любой совместимый парсер.
**2. Flatten — односторонний, Stringify — обратимый.** Вложенный JSON принципиально несовместим с плоской табличной формой CSV, и большинство конвертеров молча портят данные, наткнувшись на вложенный объект или массив. Этот инструмент даёт явный выбор: режим Flatten выдаёт ключи через точку (customer.address.city) и индексированные ключи (items.0.sku) для самой чистой табличной раскладки — читаемо в Excel, но с потерями для round-trip. Режим Stringify сохраняет массивы и объекты как JSON внутри одной ячейки — менее красиво, но полностью обратимо: CSV → JSON → CSV даёт идентичные данные при включённом Infer types на обратном пути. Выбирайте по цели: анализ в Excel (Flatten) или round-trip конвейера (Stringify).
**3. Обнаружение больших целых.** Тип Number в JavaScript использует IEEE 754 double-precision и молча округляет целые выше 2^53 - 1 (9007199254740991). Это бьёт по реальному JSON: snowflake-ID Twitter, ID Discord, поля Long в MongoDB и resourceVersion Kubernetes — все 64-битные целые, выходящие за безопасный диапазон. Большинство браузерных JSON-инструментов молча выдаёт неверные числа без предупреждения. Этот инструмент находит большие целые при разборе, показывает баннер с перечнем затронутых полей и сохраняет исходные цифры как строки в выходном CSV, чтобы Excel и Google Sheets не обрезали их до научной нотации.
**4. 100% приватность в браузере.** Ваши JSON-данные — часто содержат PII пользователей, внутренние дампы БД, API-ключи во вложениях и production-секреты — никогда не покидают браузер. Никакие данные не отправляются на сервер, не логируются, нет аналитики, перехватывающей ввод. Это можно проверить через вкладку Network браузера. Это единственный безопасный способ обработки чувствительных данных в онлайн-инструменте. Посмотрите обратное направление через «Поменять направление» или используйте парный конвертер JSON в YAML, когда ваша цель — YAML. Нужно проверить JSON перед конвертацией? Попробуйте наш форматировщик JSON.
Сильные стороны CSV — универсальность и простота: каждый инструмент его читает, парсеры маленькие, формат человекочитаем в любом текстовом редакторе. Слабые — отсутствие информации о типах (всё строка, пока вы не скажете парсеру обратное), нет нативной поддержки вложенных структур и локально-зависимые особенности (точки с запятой в Excel-EU, Windows CRLF против Unix LF). Сильные стороны JSON — ровно противоположны: точные типы, нативная вложенность и строгая спецификация, парсящаяся одинаково везде. Правильный инструмент зависит от потребителя: человек читает таблицу — CSV, машина потребляет API — JSON. Этот конвертер обеспечивает мост в обоих направлениях.
// Input JSON
[
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]
// Output CSV (RFC 4180 preset: comma + CRLF + no BOM)
id,name,role
1,Alice,admin
2,Bob,editor
// Same input with Stringify mode + nested data
[
{ "id": 1, "tags": ["a", "b"] }
]
// Becomes
id,tags
1,"[""a"",""b""]" Ключевые возможности
Соответствие RFC 4180
Строгий парсер на конечном автомате по спецификации CSV от IETF: корректная обработка полей в кавычках, вложенных разделителей, вложенных CR/LF и экранированных двойных кавычек (удвоением). Вывод чисто проходит round-trip через Python csv, PostgreSQL COPY и AWS S3 SELECT.
Пресеты Excel, TSV и Pipe
Пресеты в один клик для четырёх самых частых целей: RFC 4180 (запятая + CRLF), Excel (точка с запятой + CRLF + UTF-8 BOM для EU-локалей), TSV (Tab + LF) и Pipe (| + LF). Переключайтесь между форматами без ручной правки пяти отдельных параметров.
Flatten или Stringify для вложенных
Явная обработка вложенных: Flatten выдаёт ключи через точку (customer.address.city) для чистого анализа в таблице, Stringify сохраняет массивы и объекты как JSON в одной ячейке для round-trip без потерь. Выбирайте по тому, нужен ли анализ в Excel или round-trip конвейера.
Обнаружение больших целых
Целые выше 2^53 находятся при разборе и сохраняются как строки в CSV — ID Twitter, snowflake Discord, поля Long в MongoDB и resourceVersion в K8s остаются точными вместо молчаливого округления типом Number IEEE 754 в JavaScript.
Авто-определение NDJSON
JSON со строчным разделителем (.ndjson, .jsonl) определяется автоматически — вставляйте потоковые журналы, экспорты событий API или вывод data lake напрямую, не оборачивая вручную в массив. Каждая строка становится строкой CSV.
Двунаправленность через Swap
Одна кнопка «Поменять направление» переворачивает конвертацию на месте: вход становится CSV, вывод — JSON, текущий текст сохраняется. Прогоняйте данные round-trip в обе стороны, чтобы проверить конвертацию без потерь перед отправкой в конвейер.
Примеры
Ответ REST API
[{"id":1,"name":"Alice Chen","email":"alice@example.com","role":"admin"},{"id":2,"name":"Bob Garcia","email":"bob@example.com","role":"editor"},{"id":3,"name":"Carol Singh","email":"carol@example.com","role":"viewer"},{"id":4,"name":"Dan Müller","email":"dan@example.com","role":"viewer"}] Типичный вывод API. С включённым заголовком получаете аккуратный табличный CSV, готовый для Excel.
GitHub Issues API
[{"id":1001,"title":"Bug: login redirects to 404","state":"open","labels":["bug","priority:high"],"user":{"login":"alice"}},{"id":1002,"title":"Feature: dark mode toggle","state":"open","labels":["enhancement"],"user":{"login":"bob"}},{"id":1003,"title":"Docs: update README","state":"closed","labels":["docs","good-first-issue"],"user":{"login":"carol"}}] Получено из /repos/{owner}/{repo}/issues. Flatten включён, заголовок включён — user.login раскрывается отдельной колонкой.
MongoDB mongoexport
[{"_id":{"$oid":"6634a1b2c3d4e5f600000001"},"email":"alice@example.com","metadata":{"signupDate":"2026-01-15T10:30:00Z","preferences":{"newsletter":true,"theme":"dark"}}},{"_id":{"$oid":"6634a1b2c3d4e5f600000002"},"email":"bob@example.com","metadata":{"signupDate":"2026-02-20T14:15:00Z","preferences":{"newsletter":false,"theme":"light"}}}] Форма экспорта MongoDB. Выбирайте режим Stringify, если планируете round-trip CSV→JSON.
Журнал событий NDJSON
{"event":"signup","user":"alice","ts":1715000000}
{"event":"login","user":"alice","ts":1715000060}
{"event":"checkout","user":"alice","ts":1715000300} JSON с разделителями строк (.ndjson/.jsonl) определяется автоматически — вставьте содержимое файла напрямую.
Вложенные заказы e-commerce
[{"id":"ord-001","customer":{"name":"Alice Chen","email":"alice@example.com","address":{"city":"Seattle","country":"US"}},"items":[{"sku":"SKU-100","qty":2},{"sku":"SKU-205","qty":1}]},{"id":"ord-002","customer":{"name":"Bob Garcia","email":"bob@example.com","address":{"city":"Madrid","country":"ES"}},"items":[{"sku":"SKU-100","qty":1}]}] Режим Flatten выдаёт ключи через точку (customer.address.city, items.0.sku). Переключайтесь на Stringify, чтобы массивы и объекты сохранились как JSON в одной ячейке.
Результаты тестов Postman
[{"name":"GET /users returns 200","status":"pass","duration":142},{"name":"POST /users creates record","status":"pass","duration":287},{"name":"GET /users/999 returns 404","status":"fail","duration":98,"error":"Expected 404, got 500"},{"name":"DELETE /users/1 returns 204","status":"pass","duration":156}] Экспорт тестов Postman/Newman. Строки разной формы (некоторые с error) дополняются пустыми ячейками — появится предупреждение Schema notes.
Как использовать
- 1
Вставьте JSON
Введите или вставьте JSON в поле ввода выше. Инструмент принимает массивы объектов, одиночные объекты и NDJSON (JSON со строчным разделителем) — определяется автоматически. Можно нажать «Загрузить пример», чтобы попробовать на образце — ответе REST API, экспорте MongoDB или журнале событий NDJSON.
- 2
Выберите пресет (или настройте параметры)
Нажмите RFC 4180 (по умолчанию), Excel (точка с запятой EU + BOM), TSV (Tab) или Pipe, чтобы настроить целевой формат одним кликом. Откройте панель «Настройки» для тонкой регулировки: разделитель, заголовок, кавычки (Auto/Always), окончание строк (LF/CRLF), BOM и вложенные (Flatten/Stringify).
- 3
Скопируйте или скачайте CSV
Нажмите «Скопировать», чтобы поместить CSV в буфер обмена, или «Скачать», чтобы сохранить как .csv (.tsv при пресете TSV) для Excel, Google Sheets, PostgreSQL COPY или любого data-конвейера. Для round-trip нажмите «Поменять направление», чтобы преобразовать CSV обратно в JSON на месте.
Типичные ловушки конвертации
Верхнеуровневое значение — примитив
CSV принципиально табличный — это строки полей. Одиночное число, строка или булево не имеют структуры строк/колонок для проекции. Верхнеуровневое значение JSON должно быть объектом (таблица из одной строки) или массивом (многострочная таблица). Сначала оберните примитив в объект или массив.
42
[{"value": 42}] Массив со строками разной формы (разные ключи)
Когда строки в JSON-массиве имеют разные ключи (у одних есть поле error, у других нет), инструмент объединяет все ключи по всем строкам и заполняет отсутствующие ячейки пустыми значениями. Появляется предупреждение Schema notes — вы знаете, что колонки слиты. Обычно это нормально, но проверьте вывод, если внешние инструменты ждут строгую схему.
[
{"name": "GET /users", "status": "pass"},
{"name": "GET /users/999", "status": "fail", "error": "500"}
] // Output CSV (note empty cell in row 1) name,status,error GET /users,pass, GET /users/999,fail,500
Большое целое обрезается Excel
Snowflake-ID Twitter, ID Discord и другие 64-битные целые превышают безопасный диапазон JavaScript (2^53 - 1) и теряют точность при чтении через JSON.parse(). Даже если CSV сохранит цифры, Excel по умолчанию покажет их в научной нотации. Решение в двух частях: храните ID как строки в JSON перед конвертацией и включайте BOM (или используйте пресет Excel), чтобы Excel сохранил ячейку как текст.
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost) {"id": "9007199254740993"}
// CSV preserves the string; Excel displays exactly Запятая внутри поля без кавычек
Если вы строите CSV вручную через наивный join(','), любое поле с запятой (Smith, Jr. или 1,234.56) сломает границы колонок — парсер увидит лишние колонки, где должна быть одна. Режим Auto-кавычек этого инструмента следует RFC 4180 и автоматически оборачивает в двойные кавычки любое поле, содержащее разделитель, двойную кавычку, CR или LF.
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 нечитаем как CSV с запятыми
Европейские локали Excel (Германия, Франция, Испания, Италия и др.) резервируют запятую под десятичный разделитель и используют точку с запятой как разделитель полей. Стандартный CSV с запятыми открывается с каждой строкой, схлопнутой в колонку A. Решение — пресет Excel: переключение на ; + CRLF + UTF-8 BOM, чтобы Excel корректно разобрал файл в любой локали.
id,name,price 1,Alice,1,234.56 // Excel-EU mis-parses 1,234.56 as two columns
// Excel preset output: ; + CRLF + BOM id;name;price 1;Alice;1234,56 // Excel-EU reads cleanly with comma decimal
NDJSON не определён (форма ввода)
Авто-определение NDJSON требует одного корректного значения JSON на строку, без ведущих и концевых квадратных скобок массива. Если вы вставляете JSON-массив массивов или у файла есть ведущая [ и концевая ], инструмент трактует это как одно JSON-значение, а не NDJSON. Уберите оборачивающие скобки и убедитесь, что каждая строка — самодостаточный JSON-объект.
[
{"event": "signup"},
{"event": "login"}
]
// Detected as a regular JSON array (works, but not NDJSON path) {"event": "signup"}
{"event": "login"}
// Each line is one JSON value — auto-detected as NDJSON Типичные сценарии
- Ответ API в таблицу
- Вставьте ответ REST API (массив объектов user/order/event) и получите аккуратный табличный CSV, готовый для Excel, Google Sheets или Numbers. Самый частый сценарий — аналитикам и PM нужны данные в табличной форме, инженеры отдают JSON с бэкенда.
- Экспорт MongoDB в data warehouse
- Преобразуйте JSON-вывод mongoexport (с обёртками $oid и вложенными metadata-документами) в CSV для загрузки в BigQuery, Snowflake или Redshift. Режим Stringify сохраняет вложенную форму без потерь, когда внешние инструменты поддерживают JSON-в-ячейке.
- Триаж GitHub Issues
- Получите issues из /repos/{owner}/{repo}/issues, вставьте JSON и получите плоский CSV с колонками id, title, state, labels и user.login. Перетащите в Sheets, чтобы фильтровать, сортировать и распределять во время планирования спринта.
- Просмотр журнала событий NDJSON
- Потоковые журналы из Cloud Logging, Datadog, Vector или собственного конвейера часто приходят как NDJSON (.ndjson, .jsonl). Вставьте содержимое файла напрямую — определится автоматически — и получите CSV для ad-hoc анализа без подъёма реального ETL-конвейера.
- Извлечение заказов e-commerce
- Преобразуйте вложенный JSON заказов (customer.address.city, массив items) в плоский CSV для финансов, фулфилмента или fraud-обзора. Режим Flatten выдаёт по одной колонке на листовое поле, готовое для загрузки в Excel под ad-hoc отчётность.
- Отчёт о тестах Postman/Newman
- Экспорты тестов Postman содержат строки разной формы (некоторые с необязательным полем error). Вставьте JSON, получите CSV с объединением всех ключей и заполненными пустыми ячейками — идеально для шаринга отчётов по упавшим тестам с не-инженерами в Sheets.
Технические детали
- Парсер RFC 4180 на конечном автомате
- Оба направления используют полноценный парсер на конечном автомате по RFC 4180. Состояния — UnquotedField, QuotedField, AfterQuote, RowEnd и EndOfInput. Парсер корректно обрабатывает поля в кавычках с разделителем внутри, вложенные CR/LF в полях в кавычках, экранированные двойные кавычки (удвоением, как "") и концевые переносы строк. На выходе — round-trip без потерь через модуль csv в Python, PostgreSQL COPY, AWS S3 SELECT и любой совместимый парсер.
- Алгоритм обнаружения больших целых
- Перед прогоном JSON через JSON.parse() (который молча округлил бы большие целые через IEEE 754) инструмент сканирует исходный текст JSON регуляркой в поисках целочисленных литералов вне безопасного диапазона (-2^53+1 до 2^53-1). При обнаружении затронутые пути полей записываются, и под выводом появляется баннер Big-integer warning. Затем CSV-писатель сохраняет эти значения как строки, обеспечивая точное совпадение через Excel, Google Sheets и любого внешнего потребителя, понимающего текст.
- BOM и кодировка UTF-8 для Excel
- Весь ввод и вывод — UTF-8. Необязательный UTF-8 BOM (0xEF 0xBB 0xBF) добавляется в начало вывода, когда переключатель BOM включён или выбран пресет Excel. Excel в Windows использует BOM, чтобы определить кодировку UTF-8 — без него Excel откатывается к системной локали (Windows-1252 в США, Windows-1251 в России и т. д.) и портит не-ASCII символы. Современные парсеры (Python csv, Pandas, jq, PostgreSQL) обычно не нуждаются в BOM и могут включить его как лишний символ в начале первой ячейки, поэтому для не-Excel конвейеров оставляйте BOM выключенным.
Лучшие практики
- Сначала пресет, потом тонкая настройка
- Пресеты RFC 4180, Excel, TSV и Pipe настраивают пять параметров за раз (разделитель, окончание строк, режим кавычек, BOM, заголовок). Сначала выберите ближайший пресет, затем при необходимости подстройте отдельные параметры — это убережёт от частой ошибки переключить один параметр и забыть другой (например, перейти на точку с запятой, но оставить LF, что Excel-EU в Windows всё равно неверно разберёт).
- Flatten для анализа, Stringify для round-trip
- Используйте Flatten, когда цель — Excel, Sheets или одноразовый анализ: ключи через точку дают самую чистую табличную раскладку. Используйте Stringify, когда нужен round-trip CSV → JSON → CSV без потерь: массивы и объекты выживают как JSON внутри одной ячейки. Сменить режим и перезапустить дёшево; выбирайте под потребителя.
- BOM — только для Excel
- UTF-8 BOM нужен Excel в Windows, чтобы корректно определить кодировку. Любой другой парсер (Python csv, Pandas, jq, PostgreSQL COPY, BigQuery) либо игнорирует BOM, либо включает его как лишний символ в начале первой ячейки, ломая имена колонок. Для конвейеров оставляйте BOM выключенным и включайте (или используйте пресет Excel) только когда цель — Excel.
- Большие ID — строками в JSON
- Snowflake-ID Twitter, ID Discord, поля Long в MongoDB и resourceVersion в K8s — это 64-битные целые, превышающие безопасный диапазон JavaScript (2^53 - 1). Храните их как JSON-строки ("id": "9007199254740993") перед конвертацией — CSV сохранит цифры точно, тогда как числовой литерал JSON.parse() молча округлит.
- Проверяйте форму строк перед загрузкой
- Строки разной формы (у одних объектов есть ключи, у других нет) сливаются с пустыми ячейками в выводе, и инструмент показывает предупреждение Schema notes. Для потребителей со строгой схемой (BigQuery, Redshift COPY) проверьте, что все строки имеют одинаковый набор ключей перед экспортом — или явно обработайте пропуски в конвейере. Используйте наш форматировщик JSON, чтобы сначала изучить форму ввода.
Часто задаваемые вопросы
Что делает этот инструмент?
Загружаются ли мои данные куда-либо?
В чём разница между режимами Flatten и Stringify?
Как обрабатываются большие целые, например ID Twitter или ключи Snowflake?
Почему Excel показывает CSV в одной колонке?
Поддерживается ли NDJSON или JSON Lines?
Что такое RFC 4180?
Почему одни ячейки обёрнуты в кавычки, а другие нет?
Можно ли пройти round-trip CSV → JSON → CSV без потерь?
Как получить TSV-файл?
Что происходит при очень большом вводе?
Какие кодировки поддерживаются?
Похожие инструменты
Все инструменты →Base64 декодер и кодировщик
Кодирование и форматирование
Декодирование и кодирование Base64 онлайн бесплатно. Преобразование в реальном времени с полной поддержкой UTF-8 и эмодзи. Полная приватность — работает в браузере. Без регистрации.
Конвертер CSV в JSON
Кодирование и форматирование
Конвертируйте CSV в JSON в браузере. RFC 4180, определение типов, заголовок, безопасность больших целых. 100% приватно, без загрузки.
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 в YAML
Кодирование и форматирование
Вставьте JSON, получите YAML мгновенно. Live-конвертация в браузере. Готово для K8s/Compose, отступ 2/4 пробела, умное экранирование. 100% приватно, без загрузки.