Конвертер JSON / CSV / YAML / SQL / XML
Конвертируйте и проверяйте данные для типичных задач разработки прямо в браузере.
SQL-ввод поддерживает операторы INSERT INTO ... VALUES (в стиле MySQL, PostgreSQL, SQL Server и SQLite); результаты SELECT вставляйте как CSV. Значения CSV читаются как текст. Атрибуты XML сохраняются в "@attributes", а текст элемента рядом с атрибутами или дочерними элементами — в "#text". Всё обрабатывается локально в браузере.
Как пользоваться
- Вставьте данные в поле «Исходные данные». Оставьте в меню «Ввод» значение «Автоопределение» или выберите JSON, YAML, CSV, SQL или XML, если знаете формат.
- Нажмите на нужный формат рядом с надписью «Конвертировать в». Результат появится в поле «Результат», а сообщение над полями подтвердит преобразование и перечислит всё, что стоит проверить, например большие числа, которые могли потерять точность, переименованные ключи или проигнорированные операторы SQL. Если ввод не удаётся прочитать, сообщение показывает ошибку, а поле «Результат» очищается.
- Настройте параметры, которые показываются для этого формата, например «Разделитель» и «Вложенные данные» для CSV, «База данных SQL», «Оператор» и «Таблица» для SQL или «Корень» и «Элемент» для XML. Каждое изменение заново преобразует текущий ввод, поэтому повторно нажимать кнопку формата не нужно.
- Чтобы проверить ввод без преобразования, нажмите «Проверить синтаксис». Инструмент сообщит, что синтаксис корректен, или покажет, в чём ошибка, с номером строки и столбца, если парсер их предоставляет.
- Проверьте поле «Результат» и нажмите «Копировать результат». Кнопка «Очистить» очищает оба поля.
Частые вопросы
Отправляются ли куда-нибудь вставленные данные?
Нет. Данные разбираются и преобразуются в вашем браузере с помощью JavaScript, и инструмент не отправляет их в LeedyBox и не сохраняет. При открытии страница загружает с самого leedybox.com две библиотеки с открытым исходным кодом — js-yaml для YAML и PapaParse для CSV; они работают внутри страницы, и ваши данные никуда не отправляются.
Как «Автоопределение» выбирает формат и когда стоит указать его самостоятельно?
Ввод, который начинается с { или [, читается как JSON, начинающийся с < — как XML, а начинающийся с ключевого слова SQL, например INSERT, CREATE, SET, START, UPDATE или WITH, за которым следует пробел, или с комментария -- или /* — как SQL. Всё остальное пробуется как CSV, если первая строка содержит запятую, табуляцию или точку с запятой, а затем как YAML. Выбирайте формат в меню «Ввод» вручную в следующих случаях: если CSV или YAML начинается со слова, которое также является ключевым словом SQL, например строка заголовков CSV, начинающаяся с Start date или Update time, — тогда ввод читается как SQL и вызывает ошибку; если в каждой строке YAML одинаковое количество запятых, например title: Hello, world и следом tags: news, tech, — тогда его можно прочитать как CSV; если CSV разделён вертикальной чертой или состоит из одного столбца — такие данные автоопределение не распознаёт; а также если не удаётся прочитать ввод YAML или CSV — в этом случае автоопределение лишь сообщает, что формат не распознан, а при выбранном формате показывается собственная ошибка парсера и в большинстве случаев место, где она возникла.
Принимается ли JSON с комментариями, завершающими запятыми или по одному объекту на строку?
Если в меню «Ввод» выбран JSON, принимается только корректный JSON, поэтому используйте этот вариант вместе с кнопкой «Проверить синтаксис», чтобы проверить, является ли текст корректным JSON. Если выбрано «Автоопределение», ввод, который начинается с { или [, но не является корректным JSON, по возможности читается как потоковый синтаксис YAML, о чём сообщает примечание: завершающие запятые, одинарные кавычки и ключи без кавычек тогда работают, но после двоеточия у ключа без кавычек нужен пробел, потому что {a:1} читается как ключ с именем a:1 и значением null. Комментарии // и /* */ в YAML не являются комментариями: они могут попасть в ключи или значения либо помешать чтению ввода, поэтому сначала удалите их. JSON Lines (NDJSON) доступен как формат вывода, но не читается как ввод, если в нём больше одной строки; поместите строки между [ и ], поставив запятую после каждой строки, кроме последней.
Почему при конвертации из YAML 1.10 превратилось в 1.1, а 01234 — в 1234?
Значения YAML без кавычек, похожие на числа, читаются как числа, поэтому номер версии 1.10 превращается в 1.1, почтовый индекс 01234 — в 1234, а 0x1F — в 31; чтобы сохранить такие значения как текст, заключите их в YAML в кавычки. Конвертер читает YAML по базовой схеме (core schema) библиотеки js-yaml, которая в отношении логических значений и дат следует YAML 1.2, поэтому yes, no, on, off и даты вроде 2026-10-02 остаются текстом, а логическими значениями становятся только варианты true и false, например True или FALSE. При конвертации JSON в YAML строки, которые могут быть прочитаны неверно, например "01234", "1.10" или "yes", записываются в кавычках.
Почему элемент XML в одном файле становится объектом, а в другом — массивом?
Дочерние элементы, которые повторяются внутри одного родителя, становятся массивом, а единственный элемент — простым значением или объектом, поэтому <items> с одним <item> даёт другую структуру, чем <items> с двумя. Каждое значение XML читается как текст, поэтому <id>1</id> превращается в "1", а у 007 сохраняются нули; комментарии и инструкции обработки отбрасываются. Для вывода в CSV и SQL строки берутся из массива внутри обёрток с одним ключом, таких как <items>, поэтому при единственном <item> весь элемент попадает в один столбец как текст JSON; для CSV параметр «Развернуть (столбцы a.b.c)» разбивает его на столбцы.
Можно ли вставить дамп MySQL или PostgreSQL как ввод SQL?
Да, если строки записаны в операторах INSERT INTO ... VALUES. CREATE TABLE, SET, LOCK и подобные служебные операторы пропускаются, другие операторы, например DROP TABLE, игнорируются с примечанием, а строки из нескольких таблиц объединяются в один список, поэтому, если столбцы таблиц различаются, вставляйте по одной таблице. mysqldump по умолчанию не указывает имена столбцов, поэтому столбцы получают имена column1, column2 и т. д., если не создать дамп с параметром --complete-insert. pg_dump по умолчанию записывает строки блоками COPY, которые инструмент не читает, поэтому создавайте дамп с параметром --column-inserts. Если дамп содержит также функции или хранимые процедуры, вставляйте только операторы INSERT: инструмент разбивает ввод по точкам с запятой, поэтому INSERT внутри тела функции может быть прочитан как данные или прервать конвертацию.
Почему числа из CSV-файла выводятся в кавычках и какие типы столбцов использует «CREATE TABLE + INSERT»?
Каждое значение CSV считается текстом: так сохраняются ведущие нули, например в 01234, но 42 превращается в "42" в JSON и в '42' в SQL, а пустая ячейка становится пустой строкой, а не null или NULL. Тип каждого столбца выбирается по значениям в этом столбце, поэтому таблица, созданная из CSV, получает текстовые столбцы: VARCHAR(255) или TEXT, если значение длиннее 255 символов (NVARCHAR(255) или NVARCHAR(MAX) для SQL Server, TEXT для SQLite). Если ввод — JSON или YAML и все значения в столбце — числа без кавычек либо все значения — true или false, столбец вместо этого получает числовой или логический тип: целочисленный (INT, INTEGER или BIGINT в зависимости от СУБД и величины чисел), тип с плавающей запятой для дробных чисел или BOOLEAN (BIT для SQL Server, INTEGER для SQLite). В операторе нет первичного ключа, индексов и ограничений NOT NULL, поэтому, если они нужны вашей таблице, добавьте их перед выполнением.