工具
JSON 与 CSV 双向转换工具
在浏览器内双向转换 JSON 与 CSV——嵌套对象按点路径展开、字段并集冲突改名规则明确、公式注入安全导出、支持文件上传与表格预览。
输入与选项
处理地点:转换全部在此浏览器标签页内完成——粘贴的文本与上传的文件不发送、不落盘、不写入任何链接,关闭标签页即丢弃。
转换结果
转换规则说明
JSON → CSV。输入可以是对象数组、单个对象(输出一行),或包含数组的容器对象(如 {"data":[…]})——自动选中首个对象数组并提示路径。嵌套对象按点路径展开(user.name);数组默认序列化为 JSON 字符串,勾选「数组展开」后变成下标列(tags.0、tags.1)。字段取所有记录的并集、按首次出现排序;缺失字段输出空单元格,null 输出空单元格,非对象数组元素跳过并明确警告——绝不静默处理。
两个来源想要同一列名时——例如字面键 "a.b" 与展开路径 a.b,或重复生成名——后注册列重命名为 a.b#2、#3……每一次改名都列入提示,数据不会被覆盖或合并。文本以 = + - @ 或制表符开头的单元格默认加 ' 前缀,Excel、Sheets 打开时按文本显示而非当公式执行,可在选项中关闭;超过 32,767 字符的单元格按 Excel 上限截断并计数提示。
CSV → JSON。正确处理带引号字段中的逗号、双引号("")与内嵌换行,分隔符可自动识别或指定(逗号、分号、Tab、竖线)。勾选「首行为表头」时首行作为字段名——空表头命名为 column_N,重复表头重命名为 name#2。列数不一致的行会给出警告:多出的单元格放入 extra_N 字段,缺失留空字符串;关闭表头则输出数组的数组。默认全部保留字符串类型,ID、前导零(如 007)不会被改写;可选的类型推断只转换规范数字、true/false 与 null——007、+5、带空白的值始终保留为字符串。
文件上限 8 MB,全部本地读取;超过约 400 KB 的输入在后台 Worker 中转换,页面不卡死。粘贴上限 200 万字符,全程不上传。相关工具:JSON 结构对比、cURL 转 Python/JS、日志脱敏工具。
常见问题
支持什么样的 JSON 输入?
最标准的是对象数组。单个对象会转换成一行;{"data":{"items":[…]}} 这类容器对象会自动解包——取首个对象数组并在结果中提示实际路径。数组里的非对象元素(数字、null、字符串)会跳过并明确警告,绝不静默丢弃。
嵌套对象和数组怎么变成列?
嵌套对象按点路径展开为列名,如 user.name、user.addr.city。数组默认序列化为紧凑 JSON 字符串以免丢数据;勾选「数组展开」后变为下标列 tags.0、tags.1。字段名取所有记录的并集、按首次出现排序,转换后可勾选、上下移动再下载。
两列想要同一个名字怎么办?
按确定规则处理并显式提示:先注册的列保留原名,后来的列依次改名为 name#2、name#3……每一条都写进提示区。字面含点的键("a.b" 与展开的 a.b)、重复生成名、重复 CSV 表头都按此规则——绝不静默覆盖或合并。
为什么有些单元格被加了 ' 前缀?
这是公式注入防护。以 =、+、-、@ 或制表符开头的文本,在 Excel、Google Sheets 里会被当公式执行——对不可信数据是真实的滥用入口。工具默认给这类单元格加 ' 前缀按文本显示,统计转义数量,并可在选项中关闭。
CSV → JSON 会改动我的值类型吗?
默认不会:所有字段保留字符串,ID、电话号、前导零(如 007)原样保留。可选的类型推断只转换规范数字、true/false 与 null——007、+5、' 8 '、0x10 仍是字符串。带引号字段中的逗号、"" 转义和内嵌换行按 RFC 4180 解析。
我的数据会被上传或保存吗?
不会。解析与转换全部在这个浏览器标签页内完成——大输入走同源 Web Worker——不发往任何服务器、不落盘、不写入链接,关闭标签页即丢弃。