如果这个工具帮到了你,可以请作者喝杯咖啡 ☕
将 JSON 数据快速转换为 SQL INSERT 语句,支持数组和对象格式。
场景一:后端开发人员——你从某个 API 接口拿到了 JSON 格式的用户列表(比如 [{"id":1,"name":"张三"},{"id":2,"name":"李四"}]),需要把它们批量插入到 MySQL 的 users 表中。手工拼写 INSERT 语句既枯燥又容易出错,用这个工具粘贴 JSON 就能直接拿到可执行的 SQL。
场景二:数据分析师——你在分析客户数据时,需要把配置文件里的参数列表(JSON 数组)写入数据库作为初始化脚本。使用工具后,复制生成的 INSERT 语句到 SQL 客户端,一步到位。
场景三:网站迁移——导出旧系统的 JSON 格式数据(比如文章、分类),通过工具生成 INSERT 语句直接导入新库,避免编写繁琐的中间脚本。
核心逻辑很简单:把 JSON 对象的键(key)作为 SQL 表的列名,把对应的值(value)作为 INSERT 语句里的值。如果 JSON 是一个数组,每个元素生成一条 INSERT 语句;如果是一个对象,生成单条语句。工具会自动处理数据类型:数字直接写,字符串加单引号并转义内部的单引号,布尔值转为 1 或 0,空值 null 转为 SQL 的 NULL。
假设你有这样一个对象 {"name": "O'Brien", "age": 30},SQL 会变成:INSERT INTO mytable (name, age) VALUES ('O''Brien', 30)——单引号被正确转义。
我们在工具左侧的「JSON 输入」框里粘贴以下数据:
[
{"id": 1, "name": "张伟", "score": 85.5},
{"id": 2, "name": "王芳", "score": 92.0},
{"id": 3, "name": "李娜", "score": null}
]然后在「表名」输入框里填入 students。点击「转换」按钮,右侧输出区域显示:
INSERT INTO students (id, name, score) VALUES (1, '张伟', 85.5);
INSERT INTO students (id, name, score) VALUES (2, '王芳', 92.0);
INSERT INTO students (id, name, score) VALUES (3, '李娜', NULL);解读:生成的 SQL 可以直接在 MySQL 或 PostgreSQL 中执行(前提是学生表已经存在)。注意 NULL 不需要加引号,工具自动处理了。每条语句末尾有分号,方便复制粘贴。
假设 JSON 是:
[
{"title": "It's a test", "published": true},
{"title": "Say "Hello" ", "published": false}
]表名填 articles,转换结果:
INSERT INTO articles (title, published) VALUES ('It''s a test', 1);
INSERT INTO articles (title, published) VALUES ('Say "Hello" ', 0);注意:字符串里的单引号被转义成两个单引号(SQL 标准做法),双引号保持原样。布尔值 true 变为 1,false 变为 0。如果你的数据库不支持这种布尔表示,可以手动调整。
工具生成的 SQL 通常符合 ANSI SQL 标准,可以直接在 MySQL、PostgreSQL、SQLite 等数据库中使用。检查以下几点确认无误:
INSERT INTO ... VALUES (...), (...) 格式(工具不支持合并,需要自己复制粘贴调整)。table 作为表名,很容易导致语句无效。每次一定要在表名框里输入正确的名字。name 但第二个没有),工具会取所有 key 的并集,缺失值用 NULL 填充。这可能导致目标表不允许 NULL 时插入失败。{"address": {"city": "北京"}}),生成的 SQL 会直接写 [object Object],这是错误数据。你需要先把嵌套对象拍平成平铺键。1. 仅处理平铺 JSON:不支持嵌套对象或数组嵌套,如果需要多层结构,请先用其他工具展平。2. 输入大小限制:浏览器环境下,传给工具的 JSON 字符串长度受内存限制,建议单次不超过 10MB,否则页面可能变慢或崩溃。3. 输出语法偏 MySQL:虽然基础语法通用,但 MySQL 的布尔值用 1/0 表示,PostgreSQL 可以使用 TRUE/FALSE 关键字。如果你用 PostgreSQL,需要手动替换 1 和 0 为布尔值。4. 无 DDL 支持:工具只生成 INSERT 语句,不会创建表。你必须先手动建好表结构。
Q:工具能处理单个 JSON 对象吗?
可以。如果输入的是 {"a":1,"b":2},会生成一条 INSERT 语句。
Q:JSON 中的日期怎么处理?
日期字符串会被当作普通字符串(加单引号)。如果你数据库的该列是日期类型,字符串格式必须匹配数据库的格式(如 '2023-10-01')。
Q:能不能生成 REPLACE INTO 或 UPDATE 语句?
当前仅生成 INSERT,其他类型的 SQL 请手动修改。
Q:为什么生成的 SQL 末尾没有分号?
工具默认每条语句尾部加分号,但你可以批量复制后自行添加或去除。
Q:JSON 数组里混入了其他类型(比如字符串)怎么办?
工具会跳过非对象元素(比如数字、字符串),只处理对象。如果全是非对象,输出为空。
Q:这个工具需要联网吗?
不需要,所有转换在浏览器本地完成,数据不会上传到服务器,可以放心使用。
现在你可以在上方计算器里粘贴自己的 JSON,试试效果。