ZH
我的工具

JSON 转 SQL INSERT

把 JSON 对象数组转换成 SQL INSERT 语句,可选生成适用于 MySQL、PostgreSQL、SQLite、SQL Server 或 Oracle 的 CREATE TABLE,并支持嵌套值。

SQL
行数
3
列数
7

对象中缺少的键会以 NULL 插入。

列类型(PostgreSQL)
列类型出现的值NULL / 缺失
idINTEGER整数0
nameVARCHAR(12)文本0
activeBOOLEANtrue/false0
balanceNUMERIC(6,2)小数1
joinedDATE日期0
tagsJSONBJSON1
addressJSONBJSON1
我的工具 →
广告

API 响应、导出数据和测试数据通常是 JSON,而数据库需要的是 SQL。粘贴对象数组,就能得到多行合并的 INSERT 语句,以及可选的 CREATE TABLE,其列类型由值推断得出:整数、精度合适的小数、布尔值、日期、文本和 JSON。缺少某个键的对象会得到 NULL;嵌套的对象和数组可以存为 JSON,也可以展开成用点号命名的列。标识符、字符串和布尔值会按 MySQL、PostgreSQL、SQLite、SQL Server 或 Oracle 各自的写法输出。

使用方法

  1. 粘贴对象的 JSON 数组(单个对象或 {"data": […]} 的形式也可以)。
  2. 输入表名并选择数据库。
  3. 选择嵌套对象是存为 JSON 列还是展开成多列。
  4. 按需包含 CREATE TABLE 或 DROP TABLE,或指定用于 upsert 的键。
  5. 复制 SQL。

计算公式

列 = 任一对象中出现过的所有键(按首次出现的顺序) · 每个对象一个 VALUES 元组 · 缺少的键 → NULL

类型由值决定:整数为 INTEGER(超出 ±2,147,483,647 则为 BIGINT),其他数字按位数生成 DECIMAL(p,s),true/false 为 BOOLEAN(没有布尔类型的数据库用 BIT、NUMBER(1) 或 1/0),所有值都是有效日期的 ISO 日期字符串为 DATE 或 TIMESTAMP,其他字符串为 VARCHAR(最长长度) 或 TEXT,对象和数组为 JSON、JSONB、NVARCHAR(MAX) 或 CLOB。值类型混杂的列会变成文本。字符串中的单引号会写成两个,MySQL 中的反斜杠也会写成两个。

示例

示例中的 3 位客户会生成 CREATE TABLE "customers",列为 id INTEGER、name VARCHAR(12)、active BOOLEAN、balance NUMERIC(6,2)、joined DATE、tags JSONB 和 address JSONB,以及一条包含 3 行的 INSERT。O'Brien 写成 'O''Brien',Lin 缺少的 tags 和 address 以及为 null 的 balance 都变成 NULL,Ada 的 address 存为 '{"city":"London"}'。

常见问题

如果各个对象的键不一样怎么办?

只要在任一对象中出现过的键都会成为一列,顺序按首次出现的先后。没有该键的对象会得到 NULL。

展开还是用 JSON 列?

如果要按嵌套字段(address.city)筛选或关联,就展开;如果结构不固定或只需保存,就保留为 JSON。数组始终存为 JSON。

很大的数字安全吗?

不超过 9,007,199,254,740,991 的整数是精确的。更大的 ID 在任何基于 JavaScript 的工具中都会丢失位数,请在 JSON 中给它们加引号,以文本形式保留。

我的数据会被上传吗?

不会。SQL 在浏览器中生成。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). JSON 转 SQL INSERT. https://kakao.mobile/zh/tools/json-to-sql-insert-tool/

MLA

“JSON 转 SQL INSERT.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/json-to-sql-insert-tool/.

广告