SQL 转 JSON 转换器(INSERT … VALUES)
将 SQL INSERT 语句转换为 JSON:支持多行 VALUES、带引号的标识符、转义引号、NULL、TRUE/FALSE 和数字,可跨多张表。免费。
完全在浏览器中运行,您的数据不会被上传。
相关工具
查看全部什么是 SQL 转 JSON?
粘贴包含 INSERT 语句的 SQL——数据库导出、种子文件或迁移脚本——即可得到 JSON 形式的行数据。每一行变成以列名为键的对象;对多张表的插入会生成一个对象,每张表对应一个数组。
如何使用 SQL 转 JSON
- 将 SQL 粘贴到 SQL 输入框中,或使用加载示例或打开文件。
- 处理 MySQL 导出时请保持字符串中的反斜杠转义 (MySQL) 开启;处理标准 SQL / PostgreSQL 时请将其关闭。
- 选择 JSON 的缩进。
- JSON 输出会随你的输入实时更新;可使用复制或下载。
示例
INSERT INTO users (id, name) VALUES (1, 'O''Brien'), (2, NULL);
[
{
"id": 1,
"name": "O'Brien"
},
{
"id": 2,
"name": null
}
] 何时使用 SQL 转 JSON
适合在不运行数据库的情况下从 SQL 导出或种子文件中提取数据。它不会执行 SQL:SELECT、UPDATE 和 DDL 语句会被忽略,函数也不会被计算。
SQL 转 JSON 的工作原理
分词器会读取字符串('' 成对引号、可选的 MySQL 反斜杠转义、N'…' 和 E'…' 前缀)、带引号的标识符("…"、反引号、[…])、数字和注释(--、#、/* */)。解析器随后查找 INSERT [IGNORE] INTO table [(columns)] VALUES (…), (…),并跳过其他所有语句。NULL、TRUE 和 FALSE 会映射为 JSON 的 null 和布尔值;对 JavaScript 来说过大的整数会被精确保留。NOW() 等表达式会以源文本保留。没有列清单的行,其键为 column1、column2……
常见用例
- 把 mysqldump 的片段转换为 JSON 测试数据
- 查看迁移文件中的种子数据
- 把 SQL 中的少量行数据迁移到 NoSQL 存储
- 检查一条 INSERT 语句实际包含哪些值
常见问题
支持哪些 SQL 方言?
MySQL/MariaDB、PostgreSQL、SQLite 和 SQL Server 的 INSERT 语法:它们所有的标识符引用风格都能识别。对于包含 Windows 路径的非 MySQL 导出,请关闭反斜杠转义。
INSERT … SELECT 呢?
只有 VALUES 列表包含字面数据;INSERT … SELECT 语句会被跳过。
为什么 NOW() 是字符串?
工具不运行 SQL,因此表达式会以源文本保留。