CSV转JSON转换器

将CSV文件转换为JSON数组(对象数组)。可指定分隔符和是否将首行作为标题行,转换结果支持复制和下载。所有处理均在浏览器内完成,不会发送到服务器。

分隔符
将首行作为标题行
格式化显示(带缩进)


            
            已复制!
            
          

输入CSV后,转换结果将显示在此处。

CSV行与JSON对象的对应关系

CSV的一行 name,age,city
转换后的JSON对象 {"name": "...", "age": "...", "city": "..."}

将首行作为标题行时,第二行起的每一行都会转换为以标题列名为键的一个对象。

CSV→JSON 转换是什么

CSV→JSON 转换,是指将以逗号分隔的 CSV 数据,转换成程序易于处理的 JSON 数组(对象的数组)的处理。由于是以符合 RFC 4180 的解析器读取,可对应以双引号括住的储存格内的逗号、换行与经跳脱的引号(""),因此以 Excel 等输出的复杂 CSV 也能不走样地转换。

转换时会将第一列视为标题列,第二列以后的各列则转换成「标题名称: 值」形式的对象。处理全部在浏览器内的 JavaScript 完成,所输入的 CSV 内容不会传送至服务器。

CSV→JSON 转换的使用方式

  1. 输入 CSV 在文字区域贴上 CSV 或直接输入。手边没有资料时,可用范例按钮载入示例。
  2. 选择分隔字符 在分隔字符设定中选择数据使用的是逗号还是定位字符。若为 TSV 文件请选择定位字符。
  3. 设定标题列的处理 启用「以首列为标题」后,第一列的值便会作为 JSON 对象的键名使用。
  4. 选择显示形式 切换缩排显示,可在易读的附缩排 JSON 与紧凑的 JSON 之间选择。
  5. 复制结果 转换后的 JSON 会自动显示于画面。可用复制按钮放入剪贴板,直接使用。

用好本工具的小技巧

  • 启用"将首行作为标题行"后,首行的值将作为JSON对象的键名。关闭后则使用col1、col2…这样的连续编号键。
  • 如果标题中存在空白或重复的列名,该列会自动替换为col{列号}这样的键,以避免数值丢失。
  • 与姐妹工具"JSON转CSV"搭配使用,可以在CSV和JSON之间反复相互转换。
  • 转换采用符合RFC 4180标准的解析器,能正确处理引号内单元格中的逗号、换行以及转义引号(""),因此Excel等导出的复杂CSV也能正确转换。

CSV→JSON 转换的活用场景

建立 API 测试用数据

可将由电子表格导出的 CSV,迅速转换成确认 API 运作所用的 JSON 负载。

准备投入 NoSQL 资料库的数据

MongoDB 这类文件导向资料库处理 JSON 格式的数据,因此可将电子表格软件做成的清单直接转换为投入用数据。

建立前端的模拟数据

可由 Excel 做成的清单,迅速备妥画面暂用显示与测试所需的 JSON 数组。

不写脚本的一次性资料转换

对于不值得当场撰写转换代码、仅此一次的小规模 CSV→JSON 转换,也能轻松使用。

用语集

CSV
Comma-Separated Values 的缩写,指以逗号分隔值来表示表格形式数据的格式。广泛用于电子表格软件的读写。
JSON
JavaScript Object Notation 的缩写,指以键与值的组合为核心表示数据的轻量格式。多数编程语言与 API 皆以标准方式处理。
TSV
Tab-Separated Values 的缩写,指以定位字符分隔值来表示表格形式数据的格式。特点是即使值中含有逗号,分隔也不易变得暧昧。
RFC 4180
指订定 CSV 文件一般书写格式的规格。其中规范了以双引号括住的储存格内的逗号、换行与引号的处理方式等。
标题列
指置于 CSV 第一列、表示各栏名称的列。转换成 JSON 时,此列的值会作为对象的键名使用。
跳脱
指想在 CSV 中将双引号本身作为值时,以两个引号重叠("")来表示的处理。解析器会将其还原为一个双引号。

常见问题

默认情况下,首行被视为标题行,第二行起的每一行都会转换为形如{"标题名": "值", ...}的对象,所有对象再组成一个JSON数组。这是API响应和导入NoSQL数据库时常见的数据格式。

可以。将"分隔符"选择为"Tab",即可像CSV一样将TSV文件转换为JSON。

是的,CSV中的所有值都以文本处理,因此看起来像数字或布尔值的内容在JSON中也会以字符串形式输出(如"123"或"true")。如需真正的数值类型,请在转换后于JSON侧进行类型转换。

不会。转换处理全部在浏览器内的JavaScript中完成,输入的CSV内容不会被发送到任何服务器。即使是包含个人信息的数据也可以安心使用。
工具君

闲话 ― 为什么API更青睐JSON而非CSV

CSV能够简单地表示表格数据,但无法表示数组、嵌套对象等嵌套结构。大多数REST API的响应采用JSON格式,正是因为单条记录内可以自由嵌入数组和对象,从而能够原样传输CSV无法表达的复杂数据结构。

另一方面,CSV也有难以舍弃的优点:"能用Excel或表格软件立即打开""一行对应一条记录,人眼易于核对"。在实际业务中,"汇总核对用CSV、系统间对接用JSON"的分工已经固定下来,这也是像本工具这样的相互转换需求长期存在的原因。

尽管名为JSON(JavaScript Object Notation),如今几乎所有语言都将其作为标准数据格式支持,而不仅限于JavaScript。自2001年Douglas Crockford发布该规范以来,它被有意设计为一种与具体语言无关的最小化数据表示方式,这正是其广泛普及的重要原因之一。