JSON в SQL

Превратите массив JSON в CREATE TABLE с автоматически определёнными типами столбцов и пакетные операторы INSERT — для PostgreSQL, MySQL, SQLite или SQL Server.

Конвертер JSON в SQL работает полностью в вашем браузере. Ваши данные конвертируются на вашем устройстве и никогда не загружаются.

Создаёт и поддерживает Udit Agarwal

Открыть конвертер CSV в SQL

Об инструменте Конвертер JSON в SQL

JSON в SQL принимает массив объектов — ответ API, экспорт данных или файл с тестовыми данными — и создаёт два оператора, необходимых для загрузки его в базу данных: CREATE TABLE, чьи типы столбцов определяются по всем значениям каждого столбца, и операторы INSERT, объединённые в многострочные списки VALUES. Определение типов выполняется аккуратно: целые числа, превышающие 32 бита, становятся BIGINT, строки в формате ISO становятся TIMESTAMP, столбцы со смешанными типами безопасно упрощаются до TEXT, а каждый канонический тип выводится с учётом синтаксиса целевого диалекта — BOOLEAN приходит как TINYINT(1) в MySQL и как BIT в SQL Server. Детали, которые ломают написанные вручную скрипты, — это именно то, на чём здесь сделан акцент: идентификаторы заключаются в кавычки по правилам диалекта, чтобы столбец с именем order никогда не конфликтовал с ключевым словом, одинарные кавычки внутри значений корректно удваиваются, чтобы имена вроде O’Brien сохранялись без ошибок, отсутствующие ключи становятся NULL, а вложенные объекты сериализуются в текст JSON.

Возможности

  • CREATE TABLE с типами, определёнными по всем строкам, а не только по первой
  • Многострочные INSERT с настраиваемым размером пакета
  • Диалекты PostgreSQL, MySQL, SQLite и SQL Server
  • Заключение идентификаторов в кавычки по правилам диалекта — зарезервированные слова безопасны
  • Экранирование значений: удвоение кавычек, явное указание NULL
  • Отсутствующие ключи становятся NULL; вложенные структуры — текстом JSON

Как использовать Конвертер JSON в SQL

  1. Вставьте массив JSON из объектов
  2. Задайте имя таблицы и выберите диалект
  3. При необходимости настройте количество строк на один INSERT
  4. Скопируйте SQL — типы столбцов сначала выводятся для проверки

Пример

Ввод

[{"id":1,"name":"O'Brien","active":true}]

Результат

CREATE TABLE "users" ("id" INTEGER, "name" TEXT, "active" BOOLEAN);
INSERT INTO "users" ("id", "name", "active") VALUES (1, 'O''Brien', TRUE);

Удвоенная кавычка в O’’Brien — именно то, что сохраняет скрипт корректным.

Частые ошибки и устранение неполадок

  • Столбец, похожий на числовой, получился типа TEXT. — Какое-то значение в этом столбце на самом деле является строкой — "42" в кавычках, пустая строка или значение вроде N/A. Определение типа проверяет каждую строку и при любом несоответствии переключается на TEXT — очистите отклоняющиеся значения и выполните конвертацию заново.
  • Скрипт завершается ошибкой на столбце с именем order или user. — Этого не должно происходить — идентификаторы заключаются в кавычки по правилам диалекта именно для этого. Если ошибка всё же есть, проверьте, соответствует ли выбранный диалект базе данных: обратные кавычки — для MySQL, квадратные скобки — для SQL Server.
  • Даты импортировались как обычный текст. — В TIMESTAMP определяются только строки в формате ISO 8601 (2024-01-15, время указывается опционально). Локальные форматы вроде 15.01.2024 неоднозначны, поэтому намеренно остаются типа TEXT — сначала приведите их к формату ISO.

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

Как определяются типы столбцов на основе JSON?
Каждое значение в столбце участвует в «голосовании»: целые числа дают тип INTEGER (или BIGINT при превышении 32 бит), любое дробное число делает столбец типа DOUBLE PRECISION, true/false дают BOOLEAN, строки с датой в формате ISO дают TIMESTAMP, а при любом конфликте типов столбец становится TEXT. Проверяются все строки, поэтому одно позднее дробное значение не может испортить уже определённый целочисленный столбец.
Что меняется между диалектами SQL?
Заключение идентификаторов в кавычки (двойные кавычки, обратные кавычки, квадратные скобки), написание типов (BOOLEAN против TINYINT(1) против BIT, DOUBLE PRECISION против DOUBLE против FLOAT против REAL), логические литералы (TRUE против 1) и префикс N, который SQL Server требует для текста в Unicode.
Как обрабатываются объекты с разными ключами?
Столбцы — это объединение ключей всех строк в порядке их первого появления; строки без определённого ключа получают в соответствующей ячейке значение NULL. Именно так неоднородным данным из API обычно и приходится ложиться в таблицу.
Готов ли сгенерированный скрипт к использованию в продакшене?
Он готов для импорта данных: кавычки экранированы безопасно, типы подобраны разумно. Но таблица в продакшене всё же заслуживает первичного ключа, ограничений NOT NULL и индексов — этого никакое автоматическое определение типов по данным угадать не может, поэтому сначала проверьте список типов, а затем доработайте схему.

Связанные инструменты

  • Конвертер CSV to SQL — Генерирует INSERT и CREATE TABLE из CSV для четырёх диалектов
  • JSON в CSV — Преобразуйте массив плоских объектов JSON в CSV.
  • Форматировщик JSON — Форматируйте, минимизируйте и проверяйте JSON с указанием места ошибок.
  • JSON в TypeScript — Генерируйте интерфейсы TypeScript из образца JSON.
  • JSON Flatten — Сплющивайте вложенный JSON в ключи с точечной нотацией или разворачивайте обратно.
  • Сортировка ключей JSON — Рекурсивно сортируйте ключи объектов JSON А→Я или Я→А, сохраняя массивы.

Другие инструменты: JSON

  • Форматировщик JSON — Форматируйте, минимизируйте и проверяйте JSON с указанием места ошибок.
  • Просмотр дерева JSON — Изучайте JSON в виде сворачиваемого типизированного дерева.
  • Просмотрщик JSON — Текстовый и древовидный просмотр со сворачиванием/разворачиванием и путями узлов.
  • JSON в TypeScript — Генерируйте интерфейсы TypeScript из образца JSON.
  • JSON в CSV — Преобразуйте массив плоских объектов JSON в CSV.
  • Экранирование JSON — Экранируйте текст в строку JSON или разэкранируйте строку JSON в обычный текст.
  • JSON в код — Генерируйте типы Go, Rust, Python, Java, Kotlin, C# и TypeScript из JSON.
  • JSON Diff — Сравнение двух документов JSON со структурным различием.
  • Генератор и валидатор JSON Schema — Генерация JSON Schema из образца или проверка документа.
  • JSON Flatten — Сплющивайте вложенный JSON в ключи с точечной нотацией или разворачивайте обратно.
  • JSON в Zod — Сгенерируйте схему Zod из образца JSON — строки, числа, массивы и вложенные объекты.
  • JSON в Pydantic — Сгенерируйте классы моделей Pydantic v2 из образца JSON с типами и алиасами.

Все инструменты: JSON (29) · Все инструменты