功能说明
双向转换 JSON 与 CSV。JSON → CSV 接受对象数组(或单个对象)并生成表格:所有键的并集作为表头行,每个对象跟一行数据。CSV → JSON 解析 RFC 4180 的引用规则并重建对象数组。交换按钮可以翻转方向,并把当前输出搬到新的输入框,文档往返无需复制粘贴。表格下方的统计行显示行数或条目数,以及输出的字节体积。
使用方法
- 用分段控件选择方向:JSON → CSV 或 CSV → JSON。交换做同样的事,并把当前输出移入输入框。
- 把文档粘贴到左侧窗格。
- 转换结果实时出现在右侧。复制即可取走。
- 读取统计行:JSON → CSV 为
N rows · M bytes,CSV → JSON 为N items · M bytes。
示例
[{"name":"ada","role":"admin"},{"name":"bob","role":"user"}]
变为:
name,role
ada,admin
bob,user
统计行:2 rows · 28 bytes。
包含逗号、引号或换行的字段会按 RFC 4180 加引号:[{"price":"1,000"}] 的表头行为 price,数据行为 "1,000"。CSV → JSON 会精确还原这些引号。
表格模型的工作原理
两种格式表达的是同一个形状:一张带命名列的行表格。JSON 把它拼成对象数组;CSV 把它拼成一行表头加每条记录一行:
| 概念 | JSON | CSV |
|---|---|---|
| 表格 | 对象数组 | 整个文件 |
| 列 | 对象键 | 表头条目 |
| 行 | 一个对象 | 一行 |
| 单元格 | 值 | 字段 |
JSON → CSV 会遍历输入一次,按首次出现的顺序收集遇到的每个键作为表头。缺少某个键的对象会得到一个空单元格。
两种格式在这里开始不再等价,因为 CSV 单元格是纯文本:
- 嵌套对象或数组会变成它的字符串形式(
[object Object]、1,2),且无法还原。 - 数字和布尔值会变成文本:值
1往返后会变成字符串"1"。 - 空的 CSV 单元格读回时是
""。
因此,只要值不只是纯字符串或数字,JSON → CSV → JSON 就是有损的。请把这个组合用于表格数据,嵌套文档留在 JSON 里。
补充说明
- 确定性: 列顺序遵循每个键的首次出现顺序;输出使用
\n换行,且不带末尾换行符。 - 往返检查: 先转过去,点交换,再转回来,对比两份文档,就能看清电子表格到底会保留什么。
- 私密: 所有转换都在你的浏览器中本地运行。
- 相关工具: JSON Formatter、JSON Validator、JSON Minify。