Перейти к содержимому
LeedyBox
Поддержать

Конвертер JSON / CSV / YAML / SQL / XML

Конвертируйте и проверяйте данные для типичных задач разработки прямо в браузере.

Конвертировать в:

SQL-ввод поддерживает операторы INSERT INTO ... VALUES (в стиле MySQL, PostgreSQL, SQL Server и SQLite); результаты SELECT вставляйте как CSV. Значения CSV читаются как текст. Атрибуты XML сохраняются в "@attributes", а текст элемента рядом с атрибутами или дочерними элементами — в "#text". Всё обрабатывается локально в браузере.

Проверяйте результаты перед использованием. Инструмент предоставляется «как есть», без гарантий, и результаты могут быть неполными или неверными. Условия использования

Форматы не соответствуют друг другу один к одному. Типы данных, вложенные значения, специальные символы и очень большие числа могут измениться при конвертации. Сгенерированный SQL не проверяется на вашей базе данных, поэтому протестируйте его на копии, прежде чем запускать на реальных данных.

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

  1. Вставьте данные в поле «Исходные данные». Оставьте в меню «Ввод» значение «Автоопределение» или выберите JSON, YAML, CSV, SQL или XML, если знаете формат.
  2. Нажмите на нужный формат рядом с надписью «Конвертировать в». Результат появится в поле «Результат», а сообщение над полями подтвердит преобразование и перечислит всё, что стоит проверить, например большие числа, которые могли потерять точность, переименованные ключи или проигнорированные операторы SQL. Если ввод не удаётся прочитать, сообщение показывает ошибку, а поле «Результат» очищается.
  3. Настройте параметры, которые показываются для этого формата, например «Разделитель» и «Вложенные данные» для CSV, «База данных SQL», «Оператор» и «Таблица» для SQL или «Корень» и «Элемент» для XML. Каждое изменение заново преобразует текущий ввод, поэтому повторно нажимать кнопку формата не нужно.
  4. Чтобы проверить ввод без преобразования, нажмите «Проверить синтаксис». Инструмент сообщит, что синтаксис корректен, или покажет, в чём ошибка, с номером строки и столбца, если парсер их предоставляет.
  5. Проверьте поле «Результат» и нажмите «Копировать результат». Кнопка «Очистить» очищает оба поля.

Частые вопросы

Отправляются ли куда-нибудь вставленные данные?

Нет. Данные разбираются и преобразуются в вашем браузере с помощью 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, поэтому, если они нужны вашей таблице, добавьте их перед выполнением.