Инструменты InterLAB · JSON ↔ YAML ↔ CSV · ошибки по строкам · TypeScript

Конвертер JSON, YAML и CSV

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

Бесплатно, без регистрации

JSON · YAML · CSV — всё считается в браузере
Из
В

Ввод

Ввод до 200 КБ и настройки сохраняются только в этом браузере.

Настройки ввода

Результат · YAML

Конвертирую…

Настройки вывода

Например: users[0].name, users[*].id, $.owner — результат покажет только найденное.

Как работает конвертер

  1. Определение формата

    Начинается с { или [ — это JSON. Строки с одинаковым числом полей через запятую, точку с запятой, табуляцию или | — таблица CSV/TSV. Остальное читается как YAML. Формат можно выбрать вручную.

  2. Разбор с точным местом ошибки

    JSON разбирается собственным разборщиком по RFC 8259: при ошибке видно строку, столбец, фрагмент с указателем ^ и понятное объяснение. YAML — библиотекой yaml (версии 1.2 и 1.1), CSV — по RFC 4180 с кавычками и переводами строк внутри полей.

  3. Преобразование

    Вложенные объекты при выгрузке в CSV разворачиваются в колонки user.name и tags[0] и собираются обратно при чтении. Можно отсортировать ключи, сменить отступ, минифицировать, экранировать не-ASCII или получить типы TypeScript по образцу.

  4. Дерево и фильтр

    Дерево показывает структуру; клик по ключу копирует путь вида $.users[0].name. Фильтр по пути (users[*].id, $.owner) оставляет в результате только найденное.

Стандарты и ловушки

JSON — RFC 8259; YAML — спецификации 1.2.2 и 1.1; CSV — RFC 4180; TSV — табуляция без кавычек внутри полей (кавычки ставятся, если в значении есть табуляция или перевод строки).

Самая частая ловушка YAML — разница версий. Kubernetes, Ansible и PyYAML во многих местах читают YAML по правилам 1.1, где «no» — это false, а «0755» — восьмеричное число. Инструмент по умолчанию читает YAML 1.2 и предупреждает о каждом таком значении с номером строки; при выводе YAML такие строки берутся в кавычки.

no

YAML 1.2
"no"
YAML 1.1
false

yes

YAML 1.2
"yes"
YAML 1.1
true

on

YAML 1.2
"on"
YAML 1.1
true

off

YAML 1.2
"off"
YAML 1.1
false

0755

YAML 1.2
755
YAML 1.1
493

1:30

YAML 1.2
"1:30"
YAML 1.1
90

2026-10-14

YAML 1.2
"2026-10-14"
YAML 1.1
"2026-10-14T00:00:00.000Z"
Одна и та же запись «key: …» в YAML 1.2 и 1.1 (результат разбора инструментом)

JSON

Файл
.json
MIME
application/json
Что умеет
RFC 8259; отступ 2/4/табуляция, минификация, сортировка, \uXXXX

YAML

Файл
.yaml
MIME
application/yaml
Что умеет
YAML 1.2; документы через ---, кавычки для yes/no/on/off

CSV

Файл
.csv / .tsv
MIME
text/csv
Что умеет
RFC 4180; пути колонок, стратегии массивов, защита от формул

TypeScript

Файл
.ts
MIME
text/typescript
Что умеет
interface или type по образцу данных

Query string

Файл
.txt
MIME
text/plain
Что умеет
a[b]=1&t[0]=x, кодирование encodeURIComponent
Форматы результата

empty

Сообщение
Пустой ввод.

unexpected-end

Сообщение
Данные оборвались: не хватает закрывающей скобки, кавычки или значения.

unexpected-char

Сообщение
Неожиданный символ: здесь ожидалось значение (строка в двойных кавычках, число, true, false, null, объект или массив).

unterminated-string

Сообщение
Строка не закрыта: нет парной кавычки до конца строки.

bad-escape

Сообщение
Недопустимая escape-последовательность. В JSON разрешены \" \\ \/ \b \f \n \r \t и \uXXXX.

control-char

Сообщение
Управляющий символ внутри строки: табуляцию и переводы строк нужно записывать как \t и \n.

bad-number

Сообщение
Неверное число: в JSON нет ведущих нулей, «+», точки без цифр, NaN и Infinity.

trailing-comma

Сообщение
Висячая запятая перед закрывающей скобкой — в строгом JSON так нельзя.

comment

Сообщение
Комментарии в строгом JSON запрещены.

single-quote

Сообщение
Строки в JSON пишутся в двойных кавычках.

unquoted-key

Сообщение
Ключ без кавычек: в JSON ключи — строки в двойных кавычках.

expected-colon

Сообщение
После ключа ожидается двоеточие.

expected-comma

Сообщение
Ожидается запятая или закрывающая скобка — возможно, пропущена запятая между элементами.

expected-key

Сообщение
Ожидается ключ в двойных кавычках.

trailing-data

Сообщение
После значения есть лишние данные — JSON-документ содержит одно значение верхнего уровня.

too-deep

Сообщение
Слишком глубокая вложенность (больше 1000 уровней).
Сообщения об ошибках JSON (показываются со строкой, столбцом и фрагментом)

Ограничения

  • Мягкий JSON — не полный JSON5: принимаются только комментарии, висячие запятые, строки в одинарных кавычках и ключи без кавычек. Шестнадцатеричные числа, NaN и Infinity остаются ошибкой.
  • Целые числа больше 2^53 теряют точность (так устроены числа JavaScript) — инструмент предупреждает о каждом. Ключи-числа («10», «2») в объектах идут первыми — это порядок свойств JavaScript.
  • Повторяющиеся ключи: в JSON остаётся последнее значение с предупреждением, в YAML это ошибка (спецификация требует уникальных ключей).
  • В CSV пустая ячейка и null неразличимы; пустые массивы в режиме колонок tags[0] не создают колонок — выберите «JSON в ячейке», чтобы их сохранить. Ключи с точкой в имени при обратном чтении станут вложенностью.
  • Типы TypeScript выводятся по образцу: значения, которых нет в данных, тип не увидит. Комментарии YAML и порядок форматирования исходника при конвертации не сохраняются.
  • Ввод до 10 МБ; показывается до 1 МБ результата (полностью — копированием и скачиванием), подсветка — до 100 КБ.

Приватность

  • Данные разбираются в вашем браузере, в фоновом потоке этой же страницы; ни ввод, ни результат никуда не отправляются, адрес страницы не меняется.
  • Ввод до 200 КБ и настройки хранятся только в этом браузере (localStorage), чтобы черновик пережил перезагрузку; больший ввод живёт только в памяти вкладки. «Сбросить всё» удаляет данные.
  • В аналитику уходит только факт копирования или скачивания и пара форматов (например, json → yaml) — без содержимого.
  • Результат уходит к нам, только если вы сами оставите заявку и не снимете галочку «Приложить результат» — что именно уйдёт, видно в форме. Файлы и изображения с заявкой не отправляются.
  • В сводке для заявки — только форматы, размеры, число ключей и строк, место ошибки и число предупреждений; сами данные, результат, имена ключей и путь фильтра в неё не попадают.

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

Все инструменты · 40
Сжатие картинок в WebP и AVIFПеретащите картинки — WebP, AVIF или JPEG по качеству или целевому размеру в КБ, шторка «до/после» 1:1, srcset и <picture>, пакетный ZIP. Всё в браузере.Генератор favicon и иконокИз картинки, SVG или буквы → favicon.ico, favicon.svg с тёмной темой, PNG всех размеров, apple-touch-icon, maskable, manifest и HTML; превью вкладки, iOS и Android — одним архивом.Предпросмотр ссылок (Open Graph)Вставьте HTML или заполните поля — и посмотрите, как ссылка выглядит в Telegram, WhatsApp, VK, Facebook, X, LinkedIn и Slack. Проверка og:image, длины текста и twitter:card, готовый блок <head>.Тестер регулярных выраженийПодсветка совпадений и групп по мере ввода, замена, разбор выражения по частям, библиотека готовых шаблонов и защита от зависания.Cron: расписание по-человеческиCron-выражение ↔ понятный текст, ближайшие запуски в вашем часовом поясе, конструктор расписания и варианты для Linux, Quartz, GitHub Actions и Kubernetes.Base64, хеши, UUID и ULIDBase64/base64url, Base32, HEX, URL и HTML в обе стороны, хеши текста и файлов любого размера (SHA-256, SHA-3, BLAKE3, MD5, CRC-32), HMAC, сверка контрольных сумм, генерация и разбор UUID v4/v7, ULID и NanoID.
Расскажите о задаче — мы изучим запрос и свяжемся с вами

Данные переезжают между системами?

Спроектируем интеграцию и формат обмена, напишем импорт и выгрузку с проверками. Объём и стоимость — после брифа.

  • Первый короткий разговор бесплатный — выбираем формат работы
  • NDA — по вашему или нашему шаблону
  • Стоимость — после брифа и согласования объёма

Не присылайте через форму пароли, ключи доступа и исходный код — безопасную передачу доступа обсудим отдельно.

Нажимая кнопку, вы соглашаетесь с обработкой персональных данных.