SQL 转 JSON 转换器(INSERT … VALUES)

将 SQL INSERT 语句转换为 JSON:支持多行 VALUES、带引号的标识符、转义引号、NULL、TRUE/FALSE 和数字,可跨多张表。免费。

完全在浏览器中运行,您的数据不会被上传。

相关工具

查看全部

什么是 SQL 转 JSON?

粘贴包含 INSERT 语句的 SQL——数据库导出、种子文件或迁移脚本——即可得到 JSON 形式的行数据。每一行变成以列名为键的对象;对多张表的插入会生成一个对象,每张表对应一个数组。

如何使用 SQL 转 JSON

  1. 将 SQL 粘贴到 SQL 输入框中,或使用加载示例或打开文件。
  2. 处理 MySQL 导出时请保持字符串中的反斜杠转义 (MySQL) 开启;处理标准 SQL / PostgreSQL 时请将其关闭。
  3. 选择 JSON 的缩进。
  4. 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,因此表达式会以源文本保留。

推荐的下一步

探索更多分类