JSON ⇄ CSV 互转
JSON ⇄ CSV
把嵌套 JSON 按点路径列名拍平成列,或者从表格重新拼回对象。
把一个 JSON 对象数组变成表格:一条记录一行,一个键一列。有意思的地方在于它怎么处理表格容不下的那部分 JSON——嵌套对象、数组,以及键不完全相同的记录——每一项都是你在页面顶部做的选择。
user.address.city 各自成为一列。
tags.0、tags.1 —— 最宽,但什么都不丢。
缺的值就是空单元格。
JSON 输入
拖入 .json 文件
在这个标签页里读取,不上传。
CSV 输出
下载的文件带 UTF-8 BOM,免得 Windows 上的 Excel 把中文当成 GBK 读。复制按钮给你的是不带 BOM 的文本。
怎么用
粘贴一个对象数组
这是表格想要的形状。单个对象变成一行;包着数组的对象——常见的 `{ "data": [...] }` 接口外壳——会替你拆开,并附一条说明。
决定嵌套怎么拍平
点路径让 `user.address.city` 单独成一列,表格要筛选或做透视时就要这样。「只拍平第一层」把 `user.address` 保留为一个装着 JSON 的单元格,更小,也可逆。
决定数组怎么处理
「每项一列」(`tags.0`、`tags.1`)什么都不丢,但表格会宽到文档里最长的那个数组。「拼接」把 `a; b; c` 放进一个单元格,读起来顺。「保留为 JSON」保留方括号,方便后面某一步再解析回去。
在预览里检查列类型
每个列头都标着这一列实际出现的类型;有些记录缺这个键时,还会标出「出现/总数」。类型是 `mixed` 的列,通常就是导出之后会出问题的地方。
下载 CSV,或复制 TSV
下载的 CSV 前面带 UTF-8 BOM,这样 Windows 上的 Excel 能正确打开中文。如果你是要粘贴进表格而不是打开文件,切到 TSV 用复制按钮。
常见问题
为什么用 Excel 打开是乱码?
因为文件保存时没有 BOM——Windows 上的 Excel 至今仍把没有 BOM 的 UTF-8 CSV 猜成 GBK。这里的下载按钮会加上 BOM;复制按钮特意不加,因为 BOM 粘进文本编辑器会显示成一个多余的字符。
能反过来把 CSV 转成 JSON 吗?
这个页面不能,它只走一个方向。而且这趟转换总体上是有损的:点路径的列名能重新拼回对象,但拼接后的数组无法和一个恰好含有分号的字符串区分开。
键不一样的记录会怎么样?
这就是「参差行」这个设置。「所有键」全部保留并留空;「共有键」丢掉任何不是每条记录都有的列;「第一行的键」把第一条记录当作 schema,其余的键悄悄忽略。第一种是安全的默认;下游导入器拒收参差文件时你要的是第二种。
大数字安全吗?
解析是浏览器的,所以超过 2^53 的数字在建表之前就已经被舍入——电子表格打开时还会再舍一次。长 id 应该在 JSON 里就写成字符串;即使这样 Excel 也可能重新格式化它,在单元格里加个前导单引号是常用的防御。
可以从这些接进来
Markdown 表格生成
Markdown Table Builder
像编辑网格一样编表并导出对齐好的 Markdown,也能把粘歪的表格重新排整齐。
JSON Lines 转换
JSON Lines Converter
在 NDJSON 和 JSON 数组之间互转,解析不了的行不会中止转换,而是按行号列出来。
jq 在线试验场
jq Playground
在浏览器里对粘贴的 JSON 跑 jq 1.7 过滤器,附一份速查表,并给出等效的命令行。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
CSV 转 Excel
CSV to Excel
把一个或多个 CSV 写进一个 .xlsx 工作簿,列带类型、有标题行和筛选。
CSV 查看器
CSV Viewer
打开很大的分隔符文件,识别列类型、给出列统计和排序,全程不把整份文件读进内存。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
JSON Lines 转换
JSON Lines Converter
在 NDJSON 和 JSON 数组之间互转,解析不了的行不会中止转换,而是按行号列出来。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。