JSON 转 SQL 转换器
将 JSON 转换为 SQL INSERT 语句和可选的 CREATE TABLE,支持 MySQL、PostgreSQL、SQLite 或 SQL Server,引号和转义均正确。免费。
完全在浏览器中运行,您的数据不会被上传。
相关工具
查看全部什么是 JSON 转 SQL?
将对象的 JSON 数组转换为 SQL:先是带推断列类型的可选 CREATE TABLE,再是 INSERT 语句。标识符和字符串会按你选择的方言加引号并转义。
如何使用 JSON 转 SQL
- 将 JSON 粘贴到 JSON 输入框中,或使用加载示例或打开文件。
- 选择 SQL 方言并输入表名。
- 切换包含 CREATE TABLE和多行 INSERT。
- SQL 输出会随你的输入实时更新;可使用复制或下载。
示例
[{"id":1,"name":"O'Brien"}] CREATE TABLE `my_table` ( `id` INT, `name` VARCHAR(255) ); INSERT INTO `my_table` (`id`, `name`) VALUES (1, 'O''Brien');
何时使用 JSON 转 SQL
适合用 JSON 导出内容、测试数据或 API 数据为数据库填充种子数据。请检查生成的列类型,并自行添加主键、NOT NULL 和索引——这些无法从示例数据中推断出来。
JSON 转 SQL 的工作原理
列是所有对象键的并集。每列的类型根据其非空值推断:整数 → INT/INTEGER(超过 32 位时为 BIGINT),小数 → DOUBLE / DOUBLE PRECISION / REAL / FLOAT,布尔值 → BOOLEAN(SQL Server 中为 BIT,SQLite 中为 INTEGER),字符串 → 根据长度为 VARCHAR(255) 或 TEXT/NVARCHAR(MAX),嵌套对象/数组 → JSON/JSONB 或文本。标识符使用反引号(MySQL)、双引号(PostgreSQL、SQLite)或方括号(SQL Server)。字符串会把单引号重复一次;MySQL 还会转义反斜杠,SQL Server 对非 ASCII 文本使用 N'…'。对于 SQL Server,多行插入会按 1000 行为一块拆分。
常见用例
- 用 JSON 测试数据为开发数据库填充种子数据
- 把 API 数据导入 PostgreSQL
- 根据 JSON 快速创建 SQLite 表用于分析
- 为迁移脚本生成 INSERT 语句
常见问题
生成的 SQL 能防止注入吗?
所有字符串值都已按所选方言转义,但在对生产数据运行之前,请务必检查生成的 SQL。
嵌套对象是如何存储的?
以 JSON 文本的形式存放在 JSON(MySQL)、JSONB(PostgreSQL)或文本列中。
为什么 SQL Server 的输出有多条 INSERT 语句?
SQL Server 在一个 VALUES 列表中最多允许 1000 行,因此较大的输入会被拆分。