SQL 转 JSON — 将 SQL INSERT 语句转换为 JSON 数组
将 SQL INSERT 语句转换为 JSON 数组。自动解析列名、处理带引号的值并推断数据类型 —— 全部在你的浏览器中完成,无需上传。
SQL INSERT to JSON
Convert SQL INSERT statements to JSON array format. Works with column-named inserts and bare value inserts. Auto-detects NULL, numbers, and strings. Works entirely in your browser.
SQL INSERT 语句是日常生产环境中仍在使用的最古老机器可读数据格式。自 1970 年代以来,每一种关系数据库都「说」INSERT,每一个数据库 dump 工具 —— mysqldump、pg_dump、sqlite3 .dump —— 都以 INSERT 语句作为主要输出格式。相对地,JSON 才是 Web API、配置文件以及所有 NoSQL 文档存储的原生语言。两者之间的鸿沟由一个理解 SQL 值语法的解析器来弥合:带转义序列的引号字符串、十进制与科学记数法的数字字面量、NULL、布尔常量、十六进制编码的二进制 —— 并把每个元组映射为按列名取键的 JSON 对象。
解析器覆盖现实世界里最常见的三种 INSERT 形态:带显式列名的单行 INSERT、用逗号分隔值组的多行批量 INSERT,以及省略列列表的 INSERT(在自动生成的 dump 中很常见)。输出是一个对象数组,每个元素对应一行,这正是所有 JSON 消费工具所期待的形态。此后转换管道是开放的:把 JSON 送入 JSON-to-CSV 工具导出为电子表格,送入 JSON-to-TypeScript 工具让 API 获得类型化消费,或者用 JSON Schema Generator 创建与原始表结构匹配的验证 schema。工具完全在浏览器中运行,所以包含敏感数据的数据库 dump 永远不会被上传。
使用方法
粘贴你的 SQL INSERT 语句
粘贴一条或多条 INSERT INTO 语句。解析器会提取表名、列列表和值元组。多行批量插入(用逗号分隔的值组)完全支持。
查看自动推断出的列
解析器会从表名之后的括号列表中自动识别列名。如果你的 INSERT 没有指定列列表,会被命名为 col_0、col_1 等 —— 在输出选项中可以重命名它们。
导出为 JSON
把 JSON 数组复制到剪贴板,或下载为 .json 文件。可以在压缩(单行)和美化(自定义缩进)两种输出之间切换。
常见问题
支持不同的 SQL 方言吗?
支持 —— MySQL、PostgreSQL、SQLite 和 SQL Server 的 INSERT 语法都被识别。解析器同时兼容反引号引用(MySQL)、双引号引用(PostgreSQL)和方括号引用(SQL Server)的列名。
NULL 和带转义字符的字符串怎么处理?
NULL 映射为 JSON null。带转义单引号的字符串(`O''Brien`)会被反转义成 `O'Brien`。PostgreSQL 风格的反斜杠转义字符串(`E'line\nbreak'`)会转换为 JSON 输出中的实际换行字符。
能解析跨多行的 INSERT 吗?
能。解析器在词法分析之前会先规范化空白,因此一段跨 20 行、带缩进的 INSERT 与单行写完的同一语句解析结果完全一致。
遇到 INSERT IGNORE 或 ON DUPLICATE KEY 会怎样?
IGNORE 和 ON DUPLICATE KEY UPDATE 子句会被剥离 —— 只有 INSERT 部分参与输出。生成的 JSON 表示「本应被插入」的数据,冲突解决修饰符被忽略。
限制说明
- 不解析 DDLCREATE TABLE、ALTER TABLE 和其他 schema 语句会被忽略。工具只解析 INSERT 语句。如需提取表结构定义,请使用专门的 SQL 解析器或数据库自带的 dump 工具。
- 不支持子查询`INSERT ... SELECT` 语句无法转换 —— 工具要求显式的值列表。请先在数据库里跑 SELECT,再用其原生函数把结果集转换为 JSON。
- 类型推断是启发式的被引号包起来的数字(`'42'`)会保留为字符串,因为 SQL 源中声明其为字符串类型列。工具不会覆盖由列类型所暗示的 schema。
平台说明
- macOS
- macOS 上的 MySQL 和 PostgreSQL 都用 `mysqldump` 和 `pg_dump` 导出 INSERT 语句。本工具适合把 dump 文件里的一批数据抽出来接入基于 JSON 的工作流,又无需接触数据库本身。
- Linux
- `pg_dump --data-only --inserts` 产出的 INSERT 语句兼容本工具。粘贴之前可以先用 `grep` 过滤掉不需要的表。
- Web
- 完全在浏览器中运行。SQL 语句从不离开你的设备 —— 处理包含生产数据的数据库 dump 时尤其有用。