跳转到内容
API 接口参考v2

JSON 转 CSV API

通过一次 REST API 请求,将 JSON 数组转换为 CSV,直接获取 CSV 输出。

REST APIv2 · 直接返回 CSV输入 JSON,输出 CSV。每次成功转换消耗 1 积分

试用 JSON 转 CSV

本地示例预览
POSThttps://api.tableconvert.com/v2/convert/json-to-csv

CSV 输出

"name","email","active"
"Alice","alice@example.com","true"
"Bob","bob@example.com","false"

示例预览在浏览器内运行,不消耗积分。

CSV 选项
真实请求成功后消耗 1 积分。

密钥仅发送至 API,本页面不会保存。

JSON 转 CSV API 调用示例

选择语言,在环境变量中设置 TABLECONVERT_API_KEY 后运行请求。各示例均将 CSV 响应保存为 output.csv。

cURL 快速开始

curl --fail-with-body --max-time 40 \
  'https://api.tableconvert.com/v2/convert/json-to-csv' \
  --header "Authorization: Bearer $TABLECONVERT_API_KEY" \
  --form-string 'data=[{"name":"Alice","email":"alice@example.com","active":true},{"name":"Bob","email":"bob@example.com","active":false}]' \
  --output output.csv

需要 cURL。使用 --form-string 发送 JSON 文本,由 cURL 自动设置 multipart boundary。

鉴权与响应格式

通过 Authorization: Bearer 请求头发送 API Key。v2 请求成功后,响应正文直接为 CSV 文本,而非 JSON 包装或下载链接。

生产环境请将 API Key 存放在服务端环境变量中。不要将密钥写入公开代码仓库或 URL。

请求参数

使用 multipart/form-data 发送请求,从 data、file、url 中选择一种输入来源。不要手动设置 Content-Type,请由 HTTP 客户端生成 multipart boundary。

参数类型说明
datastringJSON 文本。建议使用非空的平铺对象数组表示多条记录。
filebinary.json 文件上传。cURL 可使用 file=@records.json。
urlstring可公开访问的 JSON 文件 HTTP 或 HTTPS URL。

三种输入任选其一

CSV 输出选项

通过以下可选表单字段控制 CSV 输出。这里的默认值与本页示例一致。

参数默认值说明
output[doubleQuote]booleantrue为每个字段添加双引号。内部双引号不会自动转义,请在转换前规范化这类值。
output[bom]booleanfalse在输出前添加 UTF-8 BOM,适用于部分 Excel 导入流程。
output[valueDelimiter]string,使用逗号、分号或 TAB 分隔列。
output[rowDelimiter]stringNEWLINE行分隔符。NEWLINE 对应 CRLF 换行。
output[prefix]string空字符串每行开头添加的文本。
output[suffix]string空字符串每行末尾添加的文本。

嵌套 JSON 与字段映射

此接口用于转换表格记录。从 API、数据库或应用导出数据前,请核对以下映射规则。

输入情况CSV 中的结果
对象包含不同的键使用全部键的并集,列顺序按各键首次出现的顺序排列。
缺少字段对应单元格为空。
null输出文本 null,而非空白单元格。
数字与布尔值转换为文本,例如 42、true 和 false。
嵌套对象不会自动展平,对应单元格为 [object Object]。请先整理为平铺记录。
字段中的数组不会展开成多行,数组元素转换为逗号分隔的字符串。
值中包含双引号内部双引号不会自动转义,请在导出前规范化或移除。

需要提取嵌套 JSON 中的字段?

发送请求前,先准备好需要的列。下例将 profile.city 提取为 city 列,无需添加不存在的 flatten 参数。

const records = [
  { name: "Alice", profile: { city: "London" } },
];

const rows = records.map(({ name, profile }) => ({
  name,
  city: profile.city,
}));
// Send JSON.stringify(rows) in the data form field.

响应与错误处理

保存响应前先检查 HTTP 状态码。v2 成功响应使用 text/plain;错误响应正文包含纯文本消息。

状态码含义处理建议
200text/plain; charset=utf-8CSV 输出
400缺少 API Key 或请求不受支持添加 Bearer 请求头,并核对输入字段。
403API Key 无效在账户中核对密钥。
402积分不足检查积分余额或套餐后再重试。
413输入超出大小限制核对下方文件和文本字段限制。
415请求编码不受支持按文档使用 multipart/form-data。
429请求过于频繁稍候再试,避免立即循环重试。
500JSON 解析或转换失败校验 JSON,并发送非空的记录数组。
503转换超时或服务暂时不可用减少输入数据或稍后重试。

大小限制与用量

文件上传最大为 50 MiB(52,428,800 字节)。multipart 中单个文本字段最大为 1 MiB;较大的 JSON 请使用文件上传。v2 的服务端处理期限为 30 秒。

标准 JSON 转 CSV 请求每次成功消耗 1 积分,失败或超时后释放预留积分。历史账户条款可能不同,请查看账户与当前定价。

查看 API 定价

仍在使用原版 API?

本页介绍直接返回 CSV 的 v2。原版 /convert/json-to-csv 接口返回 JSON 包装,请按所用版本解析响应。

API 总览

接入前的常见问题

此 API 会自动展平嵌套 JSON 吗?

不会。发送记录前,请先将嵌套对象整理为需要的列。上方映射表与预处理示例说明了当前行为。

如何上传 JSON 文件,而非粘贴数据?

使用 file 表单字段并省略 data。cURL 中可将 --form-string 'data=…' 替换为 --form 'file=@records.json;type=application/json'。

如何生成适用于 Excel 的分号分隔 CSV?

在 multipart 表单中添加 output[valueDelimiter]=;。如果 Excel 导入流程需要 UTF-8 BOM,再设置 output[bom]=true。

没有 API Key 也能体验示例吗?

可以。“预览示例”在浏览器中转换平铺记录,不调用 API。“发送 API 请求”需要你的密钥,并按正常 API 规则计费。