跳到正文
BCBinary Code Translator
菜单

数据工具

JSON 与 CSV 双向转换器

在对象数组 JSON 与 RFC 4180 风格 CSV 之间转换,明确处理表头、空值、嵌套值、引号、逗号、CRLF、多行字段和电子表格公式注入。

记录只在浏览器本地处理。面向电子表格导出时,公式注入保护默认开启。

如何转换 JSON 与 CSV

选择方向并粘贴源数据。JSON 转 CSV 要求顶层为对象数组;CSV 转 JSON 把首行当表头,并把非空单元格保留为字符串,避免猜测数字和日期。

  1. JSON 转 CSV 时提供对象数组,表头按所有记录中字段首次出现的顺序收集。
  2. 选择嵌套对象和数组是压缩为 JSON 文本,还是直接拒绝。
  3. CSV 可能被 Excel 等软件打开时,保持公式保护开启。
  4. CSV 转 JSON 时选择空单元格变为 null 或空字符串,并检查字段数和多行引号。

案例与预期行为

输入 输出 说明
[{"name":"Jane","age":30}] name,age Jane,30 标量字段变成列,记录使用 CRLF 分隔。
[{"name":"Doe, Jane","note":"She said \"hi\""}] name,note "Doe, Jane","She said ""hi""" 逗号和双引号按 CSV 规则引用和转义。
name,note Jane,"Line 1 Line 2" [{"name":"Jane","note":"Line 1\r\nLine 2"}] 被引号包围的换行属于单元格内容。
name,value 泉, [{"name":"泉","value":null}] 选择 null 策略后,空单元格变成 JSON null。
[{"cell":"=2+3"}] cell '=2+3 启用保护时,公式样式内容会增加前导单引号。
[{"meta":{"ok":true}}] meta "{""ok"":true}" 嵌套值可作为 JSON 文本放入一个 CSV 单元格。

JSON 形状与表头生成

JSON 转 CSV 只接受一个顶层数组,数组每项必须是非 null 对象。转换器按记录顺序扫描字段,第一次出现时加入表头,因此列顺序稳定且贴近源数据。某条记录缺少字段时,对应单元格为空。

CSV 是表格,而 JSON 对象每行字段可以不同。字段集合过于分散会产生很多空列,导出前最好先按明确 Schema 归一化。CSV 导入时拒绝重复表头,因为同名列无法无歧义映射到对象属性。

  • 顶层必须是对象数组。
  • 表头是字段名并集,按首次出现排序。
  • null 和缺失字段在 CSV 中变为空单元格。

RFC 4180 风格引号与换行

写出时使用逗号分隔字段、CRLF 分隔记录。字段包含逗号、双引号、回车、换行或首尾空白时,会被双引号包围;字段内部的双引号写成两个连续双引号。这是常见 RFC 4180 风格。

解析器接受 CRLF、LF 或 CR,并保留引号字段中的实际换行。未闭合引号、未引用文本中突然出现引号,以及闭合引号后出现非分隔字符都会报错。分号、制表符和自定义转义方言不在本页范围。

  • 引号中的换行不会结束记录。
  • 两个连续双引号表示一个字面双引号。
  • 导出固定使用逗号和 CRLF。

空值、类型与嵌套策略

CSV 没有统一的 null 标记和类型信息。导入时,本工具把所有非空单元格保留为字符串,并允许选择空单元格变为 null 或空字符串。它不会把 00123 猜成数字,也不会自动解析布尔值和日期,从而保护前导零和本地化格式。

导出时字符串、有限数字和布尔值转成文本,null 与缺失字段为空。对象和数组可以压缩为单元格内 JSON,也可以按选项拒绝。字符串化便于传输,但不等于把嵌套数据规范化成关系表。

  • 需要区分缺失与空文本时选择 null。
  • 只需要全字符串模型时选择空字符串。
  • 下游必须严格扁平时拒绝嵌套值。

电子表格公式注入

Excel、LibreOffice 等可能把以 =、+、-、@、制表符或回车开头的单元格解释为公式或命令。不可信数据进入这些单元格后,可能触发意外计算、链接或应用特定行为。因此导出默认在公式样式文本前增加单引号。

前导单引号会改变导出值,因此这是安全策略选择,不是透明编码。文件用于人工电子表格查看时应保持开启;只有接收方严格按数据处理且必须保留首字符时才考虑关闭。单纯给字段加 CSV 引号不能阻止公式执行。

  • 保护同时应用于表头和数据。
  • 检查危险首字符前会考虑前导空白。
  • 仍应更新电子表格软件并限制不可信文件。

常见用途与数据复核

适合把小型 API 数据导出给分析人员、把表格样例转为 JSON 测试夹具、整理联系人或库存记录,以及排查第三方 CSV。数据越扁平、规模越小、列 Schema 越明确,结果越可靠。

转换后应检查表头、行数、空值、多行字段和嵌套 JSON 单元格。业务关键导入仍应由目标系统校验列允许列表和数据类型。超大数据应使用流式工具,避免把整个文件和输出同时放入浏览器内存。

  • 生成带引号规则的 JSON 测试数据。
  • 把 API 记录临时导出到表格。
  • 验证逗号和换行转义。
  • 发布前检查公式注入防护。

错误与兼容边界

导入会报告引号损坏、表头缺失或重复、行字段数与表头不一致。导出会报告 JSON 无效、顶层不是数组、数组项不是对象或嵌套值被拒绝。本工具不会自动修复参差行、合并重复列或猜测区域分隔符。

CSV 实现并不完全统一。有的软件使用分号、UTF-16、BOM、本地小数逗号或非标准引号。本页输出 UTF-8 文本、不主动添加 BOM,并采用逗号分隔的 RFC 4180 风格。导入旧系统前应实际测试。

  • 不支持注释和多段表头。
  • 解析成功不代表邮箱、日期或数字有效。
  • 实际文件上限由浏览器内存决定。

与 JSON 和 YAML 工具的区别

JSON 格式化器保留嵌套结构,只改变展示;JSON 与 YAML 转换器也保留嵌套结构,只改变语法。CSV 必须投影到共享列,因此嵌套值需要明确策略。CSV 适合行列数据,不是 JSON 的通用替代。

需要 Schema 映射、事务和百万行导入时使用数据库工具;需要工作表、原生类型和公式时使用 XLSX 库。本页适合透明的小型文本转换,并故意关闭类型猜测,便于审计。

常见问题

CSV 输出是否符合 RFC 4180?

采用常见 RFC 4180 风格:逗号分隔、CRLF 行结束、必要时双引号包围、引号字段内双引号加倍。CSV 方言很多,仍需在目标软件中测试。

为什么导入数字后仍是字符串?

CSV 没有可靠类型元数据。自动推断可能丢失前导零、改变大整数或误读本地日期。本工具保留字符串,由目标系统按明确 Schema 转型。

嵌套对象和数组怎么处理?

可以压缩为单元格内 JSON 文本,也可以拒绝。字符串化不会自动展开成关系列,接收方必须知道该单元格还需解析 JSON。

什么是电子表格公式注入保护?

以 =、+、-、@、制表符或回车开头的内容可能被表格软件当作公式。默认会加前导单引号;仅用 CSV 双引号并不足以阻止。

支持带换行的 CSV 单元格吗?

支持。正确引号包围的换行会保留在字段中;引号外换行结束记录。未闭合引号和闭合引号后多余字符会报错。

适合超大 CSV 吗?

不适合多 GB 数据。输入和输出会整体驻留浏览器内存。大规模任务应使用带大小限制、流式处理和 Schema 校验的命令行或服务端管道。

相关开发工具

查看全部工具

Cookie 偏好设置

管理你的 Cookie 偏好。必要 Cookie 无法关闭。

必要 Cookie

必要

用于语言选择、隐私选择和网站基础功能,属于必需项。

Cookie: NEXT_LOCALE

分析 Cookie

可选的分析 Cookie 可帮助我们了解访问情况并改进网站。

Cookie: _ga, _gid, _gat, _clck, _clsk

广告 Cookie

可选的广告 Cookie 可能用于展示相关广告并衡量广告效果。

Cookie: __gads, _gcl_au, IDE