免费转换器

CSV 转 JSON 转换器

在浏览器中立即将 CSV 数据或文件转换为 JSON 格式。支持自定义分隔符、表头检测和格式化输出。

选择 CSV 文件

或将文件拖放到此处

关于此工具

CSV(逗号分隔值)和 JSON(JavaScript 对象表示法)都是普遍存在的数据交换格式,但它们描述数据的方式不同。 CSV 是平面和表格形式的:标题行定义字段名称,后续的每一行保存一条记录的值。 JSON 是分层的:数据被构造为对象(键值对)和数组,支持嵌套和更丰富的类型。将 CSV 转换为 JSON 通常意味着将每个 CSV 行转换为 JSON 对象,其键来自标题行,其值是该行的单元格。

该转换器使用 PapaParse(JavaScript 生态系统中最可靠的 CSV 库)来解析 CSV。 PapaParse 处理使 CSV 看似困难的怪癖:包含逗号的引用字段、引用字段内的转义引号、混合行结尾、可选的 BOM 标记以及包含换行符的字段。输出为结构化 JSON,默认采用两空格缩进格式化以提高可读性。

支持两种输出格式。对象数组(默认)生成 [{header1: value1, header2: value2}, ...],这是表格数据最常见的 JSON 形状。数组数组生成 [[header1, header2], [value1, value2], ...],保留列顺序而不使用标头名称作为键。

为什么将 CSV 转换为 JSON

大多数现代 API 和应用程序都使用 JSON。将 CSV 导出的数据(销售报告、联系人列表、数据库提取)加载到 JavaScript 应用程序、REST API 或 NoSQL 数据库中通常需要首先检查 JSON。该转换也是许多数据转换的第一步,因为 JSON 比 CSV 更容易以编程方式操作。

JSON 的结构还解锁了 CSV 无法表示的功能。一旦数据采用 JSON 格式,具有嵌套属性的对象、每条记录长度不同的数组以及显式类型信息(字符串、数字、布尔值)都将变得可用。存在 TSV 等 CSV 替代品,但具有相同的平坦度限制。

使用方法

粘贴或上传您的 CSV,获取 JSON。

  1. 添加您的 CSV: 将 CSV 文本粘贴到输入区域或拖放 .csv 文件。 PapaParse 自动检测分隔符;逗号是最常见的,但制表符、分号和竖线也可以。
  2. 选择输出格式: 对象数组使用标头作为键并生成最常见的 JSON 形状。数组的数组保留原始行结构。根据下游消费者的期望进行选择。
  3. 转换: PapaParse 在浏览器中处理 CSV,处理带引号的字段、转义引号和边缘情况。输出 JSON 是通过对包含特殊字符的字符串进行正确转义而生成的。
  4. 下载或复制: 另存为 .json 或复制到剪贴板。输出是任何 JSON 解析器都可以使用的有效 JSON。

常见用例

技术细节

PapaParse 实现 RFC 4180(CSV 规范)以及实际 CSV 文件包含的变体的扩展。带引号的字段可以包含逗号、换行符和引号字符(通过加倍转义)。如果存在标题,则从第一行检测标题。数字和布尔值可以自动输入(转换为实际数字或布尔值而不是字符串)或保留为字符串。

输出 JSON 是使用带有可选缩进的 JSON.stringify 生成的。字符串针对 JSON 语法(反斜杠、引号、控制字符)进行转义,结构使用请求的格式(对象数组或数组数组)。

处理的边缘情况:文件开头的 BOM、混合行结尾(\n 与 \r\n)、空单元格(根据设置呈现为空字符串或 null)、尾随换行符以及具有不同字段计数的行。 PapaParse 的稳健性使其成为标准的 JavaScript CSV 库。

最佳实践

常见问题

将 CSV 转换为 JSON 会改变内容吗?
尽可能准确地保留内容。但是,某些特定于格式的功能可能没有直接等效项,因此可能会出现细微的格式差异。
为什么要将数据转换为 JSON 格式?
JSON 是 Web API 和 JavaScript 应用程序的标准数据格式。它是人类可读的,受到编程语言的广泛支持,并且具有比 XML 更简单的语法。
转换器是否可以处理嵌套或复杂的 CSV 结构?
是的。该工具可以正确解析嵌套对象、数组和所有标准 CSV 数据类型,从而在 JSON 输出中保留完整的数据结构。
此转换安全且私密吗?
是的。所有处理都在您的浏览器本地进行。您的数据永远不会离开您的设备 - 没有服务器上传,没有云处理,没有数据收集。
我的数据是否上传到服务器?
不需要。PapaParse 在您的浏览器中运行;转换完全发生在您的设备上。
我可以将 JSON 转换回 CSV 吗?
是的 - 使用 JSON 到 CSV 工具,它会反转该过程。
最大输入尺寸是多少?
最大 50 MB。由于浏览器内存限制,较大的文件可能会变慢;对于生产规模的转换,服务器端或脚本化方法更可靠。
为什么带有引号的多行字段的 CSV 转换结果很奇怪?
PapaParse 在正确引用时处理多行字段。如果结果错误,请检查带引号的字段是否使用双引号,以及内部引号是否通过双引号 ("") 进行转义。