kits 即用工具箱

CSV 转 JSON:保留前导零、逗号和双引号

公开虚构示例 · 更新于 2026-09-30 · 可在本地工具复现

将两行虚构商品资料从 CSV 转成 JSON。目标是保留 SKU 的前导零、名称中的逗号和双引号;不根据单元格的外观猜测数据类型。

输入 CSV

sku,name,quantity
00123,"Notebook, A5",2
00456,"He said ""Hello""",0

预期 JSON

[
  {
    "sku": "00123",
    "name": "Notebook, A5",
    "quantity": "2"
  },
  {
    "sku": "00456",
    "name": "He said \"Hello\"",
    "quantity": "0"
  }
]

在工具中填入此示例 →

这三个细节决定转换是否正确

  1. 前导零:00123 输出为字符串 "00123",不是数字 123。
  2. 字段内逗号:"Notebook, A5" 是一个字段,不能用简单的 split(',') 拆列。
  3. 字段内双引号:CSV 用两个连续双引号表示一个引号;JSON 再使用反斜线转义它。

改变一个条件会怎样?

把 quantity 的 2 改为 02,输出是 "02",不会转成数字。若目标接口需要数字类型,应按照字段定义单独转换,不能对所有列统一转数字。

去掉 Notebook, A5 外层的双引号,这行将多出一列,工具会报告行与表头列数不同。重复表头也会报错。要定位列数异常,可先运行 CSV 结构检查;报告中的行号指解析后的记录。Excel 工作簿需要先另存为 CSV,制表符文本应使用 TSV 转 JSON。

导出到电子表格之前

转换只改变格式,不证明数据可信。来源不明的内容可能被表格软件解释为公式;直接使用 JSON 数据时不会执行这些字符串。需要 CSV 文件时,请阅读 JSON 转 CSV 的使用边界。还可用 CSV 公式防护导出 处理指定前缀;它会改变原始值,不能保证所有表格软件的行为。

参考:RFC 4180:CSV 的引号、逗号与换行规则。