跳到主要内容
数据处理2026-05-08Begin5 分钟阅读

在线 CSV/JSON 转换器:表格数据格式互转工具

什么是 CSV 和 JSON

CSV(Comma-Separated Values)是表格文本:第一行通常是表头,其后每行一条记录,字段默认用逗号分隔。

JSON 用对象与数组表达结构,适合 API 与程序处理。本站 CSV/JSON 转换器在浏览器内完成两种格式的双向转换,数据不上传。

对比示例(与本站输出一致)

CSV:

name,email,age
张三,zhang@example.com,28
李四,li@example.com,32

JSON(全部为字符串——本站不做类型推断):

[
  { "name": "张三", "email": "zhang@example.com", "age": "28" },
  { "name": "李四", "email": "li@example.com", "age": "32" }
]

注意:示例里的 age 在 JSON 侧仍是 "28",不是数字 28。需要数字类型时,应在下游按列显式转换。

CSV vs JSON 的特点

特性CSVJSON
可读性表格直观结构清晰
嵌套支持不支持(需展平)支持对象/数组
类型信息无(全是文本)有(字符串、数字、布尔、null 等)
适用场景Excel 导入导出、批量表格API、配置、嵌套载荷
Excel可直接打开(注意编码与分隔符)需先转表格

如何使用本站转换器(真实 UI)

打开 CSV/JSON 转换器:

  1. 左侧粘贴 CSV(含表头)或 JSON 对象数组。
  2. 点 CSV → JSON 或 JSON → CSV——工具不会自动检测方向,也不会自动嗅探分隔符。
  3. 选择分隔符:逗号 ,、分号 ; 或制表符 Tab(读写共用同一选项)。
  4. 结果可复制或下载(扩展名按输出是否像 JSON 数组选择)。

快捷键:输入区可使用主操作快捷键触发 CSV→JSON(与页面按钮一致)。

实现注记(与 csvToJson / jsonToCsv 对齐)

以下行为以本站当前实现为准,写进联调清单比背 RFC 更有用。

分隔符

  • UI 提供 , / ; / Tab 三种常用方言;csvToJson / jsonToCsv 的第二参数与选项同步。
  • Excel 在部分地区默认分号——直接选「分号」即可,不必先经 CSV/TSV 转换。

引号与转义(RFC 4180 子集)

  • 字段含逗号、双引号或换行时,应用双引号包裹。
  • 字段内的双引号写成两个双引号:"said ""hi""" → said "hi"。
  • 引号必须从字段开头开始;字段中间突然出现 " 会抛 CSV_QUOTE_POSITION_ERROR。
  • 未闭合引号 → CSV_QUOTE_NOT_CLOSED。
  • 引号内允许真实换行(一条记录可跨多物理行)。

表头

  • 第一行视为表头;键名会 trim 空白。
  • 仅表头、无数据行 → 得到空数组 []。
  • 空输入 → []。

空单元格与列数

  • 空单元格保留为 空字符串 "",不会变成 JSON null。
  • 数据行列数必须与表头一致,否则 CSV_FIELD_COUNT_MISMATCH(多一列、少一列都会失败)。
  • 全空行会被跳过。

换行与 BOM

  • 接受 \n 与 \r\n(单独的 \r 会被跳过)。
  • 输入整体会先 trim;JavaScript 的 trim 会去掉首尾的 UTF-8 BOM(U+FEFF),因此 Excel「另存为 CSV UTF-8」带 BOM 时,首列表头一般不会变成不可见的 BOM+name。
  • 若你在其他工具链里看到第一列名带 BOM,那是该链路没剥 BOM——本站这条路径已剥。

JSON → CSV 额外行为

  • 输入必须是 对象数组;元素不是对象会报错。
  • 表头取各行键的 并集(出现顺序:先扫到的键在前);某行缺键则对应单元格为空。
  • null / undefined 写成空单元格。
  • 以 =、+、-、@ 等开头的单元格会加制表符前缀,减轻 Excel/WPS 公式注入风险(仍按文本呈现)。
  • 含 ,、"、换行的字段按 RFC 方式加引号并双写内部引号。

大文件边界

  • 整段文本驻留内存再解析,适合联调与中小表。
  • 数十万行或百兆级文件会拖慢甚至卡顿标签页;应改用流式 CLI(如 csvkit、Python csv 模块)或数据库 COPY / LOAD DATA。
  • 浏览器侧没有分页流式写出——这是刻意的交互工具边界,不是漏做。

RFC 4180、Excel 方言与现实裂缝

RFC 4180 描述了「逗号 + 双引号 + CRLF」的常见形态,但从未成为全球强制标准:

  • 分隔符随 locale:德语等环境 Excel 常用分号;本站固定逗号,需先规范化。
  • 引号策略:规范要求「必要时」加引号;有的导出器从不加引号,直到字段含逗号才出问题——问题总出在「重要行」。
  • 记录 ≠ 物理行:引号内换行合法;用 split('\n') 的脚本行数会对不上。
  • BOM:Excel UTF-8 CSV 常带 BOM;剥不剥决定首列 join 是否静默失败。

把 CSV 当成「有方言的文本表格」,比当成「一种 JSON」更不容易翻车。

往返非恒等:CSV → JSON → CSV

即使两端都走本站:

  • 类型不会「变聪明」:全程字符串,这反而是可预测的——不会出现 00123 → 123。
  • 键顺序:JSON→CSV 按并集扫描顺序排列表头;若原 CSV 列序与对象键插入序不一致,往返后列序可能变化。
  • 空串与 null:CSV 侧没有 null;回程不会凭空造出 null。
  • 嵌套 JSON:本工具 不展平嵌套对象。需要点号展平、自定义分隔符时,用 JSON 转 CSV(该页有展平与分隔符选项)。

纪律:把 CSV 当作 JSON 的有损二维投影;需要保真存储时保留 JSON,或用带 schema 的管道。

与 JSON / SQL / YAML 簇互链

下一步工具何时用
嵌套 JSON 展平为宽表JSON → CSV有 address.city 这类层级
分号/制表符 CSVCSV/TSVExcel 方言或 TSV
灌开发库演示数据CSV → SQL生成 INSERT(标识符用反引号)
整理 SQL 排版SQL 格式化INSERT 生成后再 diff
配置形态互转YAML ↔ JSONK8s/CI 与 API JSON 之间
校验 JSON 结构JSON Schema转换后约束字段

相关博文:JSON/CSV 转换指南、CSV 转 SQL、YAML/JSON 转换。

常见失败对照

现象常见原因处理
CSV_FIELD_COUNT_MISMATCH某行多/少逗号,或未给含逗号字段加引号检查该行引号;或先转 TSV
CSV_QUOTE_NOT_CLOSED奇数个未配对 "补全引号或去掉多余引号
中文乱码源文件是 GBK,按 UTF-8 粘贴先转 UTF-8 再贴
列全并到一列实际是分号分隔用 CSV/TSV 工具改成逗号
Excel 打开公式异常单元格以 = 开头本站 JSON→CSV 已加防护前缀;手工 CSV 需自行处理

FAQ

CSV 里的逗号怎么办?

字段用双引号包裹:"上海, 浦东"。或改用 TSV,经 CSV/TSV 转换 再进本工具。

为什么数字还是字符串?

本站 CSV→JSON 刻意不做类型推断,避免单号、邮编、前导零被吃掉。需要数字时在应用层按列 Number(...) 或入库时 CAST。

和 JSON→CSV 工具有什么区别?

  • CSV/JSON:双向、固定逗号、值保持字符串、严格列数校验。
  • JSON→CSV:侧重 JSON 出发,可选展平嵌套、自定义分隔符、是否输出表头。

大文件能转吗?

交互级可以;百兆以上请用本地脚本或数据库装载。浏览器双倍内存(源字符串 + 对象图)是硬顶。


本文出自 ToolVault 工具匣。相关工具:CSV/JSON、JSON→CSV、CSV→SQL、YAML↔JSON。更多见首页。