CSV 转 JSON 转换器

数据 代码 转换器
上传或拖动 .csv 文件
分隔符

简介

CSV 转 JSON 转换器弥合了电子表格样式数据与结构化 JSON 之间的差距。无论您是将数据从 Excel 导入 Web 应用程序、准备数据库导出的 API 负载,还是转换配置文件,该工具都能精确灵活地处理转换。

与需要安装的命令行工具或将数据上传到服务器的在线服务不同,Toollect CSV 转 JSON 转换器完全在您的浏览器中运行。每次按键都会实时更新 JSON 输出,为您提供即时反馈。无需通过网络传输数据,兼顾速度和隐私。

凭借智能分隔符检测、类型推断、多种输出格式和实时预览表,该转换器能够处理使 CSV 转换令人沮丧的边缘情况:包含逗号的引用字段、多行值、不一致的列数等。

使用场景

CSV 转 JSON 的转换模式出现在许多实际工作流程中。了解这些场景有助于您识别何时该工具适合您的需求。

数据库导出到 API 集成

大多数数据库系统可以将查询结果导出为 CSV。当您需要将这些数据导入 REST API 或 JavaScript 前端时,转换为 JSON 是自然的桥梁。将 MySQL 或 PostgreSQL 中的用户列表、产品或订单导出为 CSV,转换为 JSON,其结构即可与 Web 框架直接兼容。

Excel 和 Google Sheets 到 Web 应用程序

电子表格数据通常需要迁移到使用 JSON 的 Web 应用程序中。将工作表导出为 CSV,转换为 JSON,列标题即可成为适用于 JavaScript、TypeScript 或任何现代框架的属性名称。这在从手动电子表格管理迁移到专用软件时很常见。

配置和迁移数据

系统配置、环境变量映射和迁移数据通常以 CSV 格式存储或交换。转换为 JSON 后,可以方便地进行验证、转换以及与基础设施即代码工具和配置管理系统集成。

ETL 管道和数据处理

抽取-转换-加载(ETL)管道通常从外部来源的 CSV 文件开始。在早期阶段转换为 JSON 可以实现结构化处理、模式验证以及与 JSON 原生工具和数据库的下游集成。

数据隐私

Toollect CSV 转 JSON 转换器在您的浏览器中本地处理每一个字节的数据。没有任何 CSV 内容会传输到任何服务器、存储在任何数据库或记录在任何系统中。

所有文件读取都通过浏览器的 FileReader API 完成,该 API 将文件加载到您设备的内存中。生成的 JSON 输出将保留在您的浏览器中,直到您明确将其复制到剪贴板或下载为文件。没有后台网络请求、工具页面上没有分析脚本,转换器也不使用任何 cookie 或本地存储。

这种零传输架构使该工具适用于敏感数据、内部业务记录以及任何数据驻留或隐私合规性很重要的场景。

工作原理

该转换器通过为准确性和灵活性设计的多阶段管道处理您的 CSV 数据。

解析

该工具使用遵循 RFC 4180 约定的自定义解析器逐行读取您的 CSV 输入。它正确处理:

  • 引用字段:用双引号括起来的字段可以包含分隔符、换行符和其他特殊字符
  • 转义引号:字段内的双引号表示为两个连续的双引号(""
  • 空字段:连续的分隔符产生空字符串值
  • 尾部空格:引号外的空格将被修剪以获得干净输出

分隔符检测

在自动检测模式下,该工具会分析数据的前几行,测试每个候选分隔符(逗号、制表符、分号),并选择产生最一致列数的分隔符。您可以随时手动覆盖检测到的分隔符。

类型推断

启用类型推断后,该工具会扫描每个值并转换识别的模式:

  • 数字:整数和小数(423.14-1.51e10)成为 JSON 数字
  • 布尔值truefalse(不区分大小写)成为 JSON 布尔值
  • Nullnull(不区分大小写)成为 JSON null
  • 字符串:其他所有内容保持为字符串

您还可以启用 JSON 值解析,它会尝试解析看起来像 JSON 对象或数组的字段。

输出格式

最终的 JSON 输出根据您选择的选项生成:

  • 对象数组:每行成为一个以表头行值为键的对象(默认)
  • 二维数组:输出为数组的数组,忽略表头行
  • 按第一列键控:一个以每个数据行第一列值为键的对象

输出可以格式化(2 或 4 空格缩进)或压缩为单行。

输入格式参考

了解 CSV 格式规则有助于您准备能够顺利转换而不会出现意外问题的数据。

分隔符选项

分隔符 符号 自动检测 典型用途
逗号 , 标准 CSV 导出
制表符 \t TSV 文件、电子表格剪贴板
分号 ; 欧洲 CSV 区域设置(Excel)
自定义 任意字符 管道符(`

引号规则

CSV 使用双引号括起包含特殊字符的字段:

  • 包含分隔符的字段必须加引号:"张三, 李四"
  • 包含换行符的字段必须加引号:"第1行\n第2行"
  • 包含双引号的字段通过重复双引号来转义:"""引用文本""" 变为 "引用文本"
  • 未加引号的字段会去除周围空格

表头行

默认情况下,第一行被视为表头行。每个表头值成为 JSON 属性键。表头会被修剪且不能为空。重复的表头名称会添加数字后缀(例如 名称名称_2)。

编码

该工具期望 UTF-8 编码的输入。带有 UTF-8 BOM(字节顺序标记)保存的文件会透明处理——BOM 在解析期间被移除。其他编码(Latin-1、Windows-1252)可能会产生乱码字符;请在转换前重新编码为 UTF-8。

CSV 边界情况展示

实际的 CSV 数据很少符合教科书示例。以下展示了该转换器如何处理最常见的边界情况。

引号内的逗号

名称,描述,价格
Widget Pro,"包含线缆、说明书和收纳包",29.99

引号内描述中的逗号被正确处理为值的一部分,而不是列分隔符。JSON 输出保持完整字符串不变。

多行值

ID,备注
001,"该产品需要
两人组装。
不包含工具。"

包含换行符的引号值被解析为跨越多行的单个字段。JSON 输出将换行符保留为 \n 转义序列。

列数不一致

名称,邮箱,电话
Alice,[email protected],555-0100
Bob,[email protected]
Charlie,[email protected],555-0200,extra

列数较少的行会为缺失字段生成空字符串。列数较多的行会生成额外的索引键。检测到列数不一致时会显示警告。

前导零

邮政编码,城市
00123,北京
02134,上海

启用类型推断时,00123 会变成数字 123(丢失前导零)。禁用类型推断以保留原始字符串 "00123"——这对于邮政编码、电话号码和产品 ID 至关重要。

BOM 字符

从 Windows 版 Excel 导出的文件通常包含 UTF-8 BOM(\uFEFF)作为前几个字节。转换器会自动移除 BOM,因此第一个表头值是干净的。您无需任何操作。

空行

名称,值
Alpha,1

Beta,2

空行和仅包含空格的行会被跳过。它们不会生成 JSON 条目,也不会触发错误。

使用方法

使用 Toollect CSV 转 JSON 转换器无需设置或注册。请按照以下步骤操作:

  1. 打开工具 — 导航到 CSV 转 JSON 转换器页面。界面显示上传区域、输入文本区域、设置面板和输出区域。

  2. 输入数据 — 将 CSV 文本直接粘贴到文本区域,或单击上传区域(或拖放 .csv 文件)加载文件。

  3. 检查设置 — 该工具会自动检测分隔符,并默认启用表头和类型推断。根据您的数据调整这些设置:

    • 如果自动检测不正确,请选择不同的分隔符
    • 如果数据缺少表头行,请切换"首行为表头"
    • 禁用类型推断以将所有值保留为字符串
  4. 预览解析的数据 — 单击"显示预览"查看解析后的 CSV 数据的表格视图。这有助于验证分隔符和表头设置是否正确。

  5. 检查 JSON 输出 — JSON 输出会在您输入时自动更新。输出文本区域是只读的,以防止意外编辑。

  6. 复制或下载 — 单击"复制"将 JSON 复制到剪贴板,或单击"下载 JSON"将其保存为 .json 文件。

输出格式参考

相同的 CSV 输入可以生成三种不同的 JSON 结构。每种格式适用于不同的使用模式。

示例输入:

产品,价格,有库存
Widget,29.99,true
Gadget,49.95,false

对象数组

每个数据行成为一个以表头值为键的对象。这是默认且最常用的格式,直接映射到 JavaScript 数组和大多数 REST API 负载。

[
  {
    "产品": "Widget",
    "价格": 29.99,
    "有库存": true
  },
  {
    "产品": "Gadget",
    "价格": 49.95,
    "有库存": false
  }
]

二维数组

输出是一个数组的数组。除非您明确禁用表头,否则表头行会被排除。适用于矩阵数据和 Grid/DataTable 组件。

[
  ["产品", "价格", "有库存"],
  ["Widget", 29.99, true],
  ["Gadget", 49.95, false]
]

按第一列键控

第一列的值成为对象键,其余列形成值对象。适用于查找表和字典式数据访问。

{
  "Widget": {
    "价格": 29.99,
    "有库存": true
  },
  "Gadget": {
    "价格": 49.95,
    "有库存": false
  }
}

第一列的值必须唯一。重复值会导致后出现的覆盖先前的——发生这种情况时会显示警告。

教程

本教程演示如何将 Excel 导出的 CSV 文件转换为用于 Web 应用程序的 JSON 数组。

场景:您有一个跟踪产品库存的 Excel 电子表格,希望将其导入需要 JSON 的 Web 应用程序。

  1. 从 Excel 导出 — 将您的电子表格保存为 CSV 文件。您应该得到类似以下内容:
Product Name, SKU, Price, In Stock, Category
Widget Pro, WDG-001, 29.99, true, Tools
Gadget X, GDG-002, 49.95, false, Electronics
Super Tool, SUP-003, 99.00, true, Tools
Accessory Pack, ACC-004, 14.99, true, Accessories
  1. 打开 CSV 转 JSON 转换器,将 CSV 文件拖到上传区域。该工具加载文件,检测逗号分隔符,并立即转换数据。

  2. 检查预览 — 单击"显示预览"查看表格表示。确认表头行已正确解析。

  3. JSON 输出 显示为:

[
  {
    "Product Name": "Widget Pro",
    "SKU": "WDG-001",
    "Price": 29.99,
    "In Stock": true,
    "Category": "Tools"
  },
  {
    "Product Name": "Gadget X",
    "SKU": "GDG-002",
    "Price": 49.95,
    "In Stock": false,
    "Category": "Electronics"
  },
  {
    "Product Name": "Super Tool",
    "SKU": "SUP-003",
    "Price": 99,
    "Category": "Tools"
  },
  {
    "Product Name": "Accessory Pack",
    "SKU": "ACC-004",
    "Price": 14.99,
    "In Stock": true,
    "Category": "Accessories"
  }
]

注意 Price 值是数字(不是字符串),In Stock 值是布尔值,并且"Super Tool"缺少"In Stock"值被省略。

  1. 尝试键转换 — 从键大小写下拉菜单中选择"snake_case"。输出变为:
[
  {
    "product_name": "Widget Pro",
    "sku": "WDG-001",
    "price": 29.99,
    "in_stock": true,
    "category": "Tools"
  }
]
  1. 尝试键控格式 — 选择"按第一列键控"以获取按产品名称索引的对象:
{
  "Widget Pro": {
    "SKU": "WDG-001",
    "Price": 29.99,
    "In Stock": true,
    "Category": "Tools"
  },
  "Gadget X": { ... }
}
  1. 下载结果 — 单击"下载 JSON"将输出保存为 .json 文件,供 Web 应用程序使用。

专业提示

掌握这些技巧,充分利用 Toollect CSV 转 JSON 转换器:

  • 先使用预览:在依赖 JSON 输出之前,始终检查预览表。列不匹配、错误的分隔符或编码问题在表格预览中立即可见

  • 处理前导零:邮政编码、电话号码和 ID 通常有前导零。禁用类型推断以将它们保留为字符串——否则 00123 会变成数字 123

  • 标准化列名:使用键大小写设置将不一致的表头转换为统一格式。对于 API 集成,通常首选 camelCase 或 snake_case

  • 先清理 CSV:删除尾部空行,检查各行的列数是否一致,并确保引用字段使用双引号以获得最佳效果

  • 与其他工具结合:在此处将 CSV 转换为 JSON,然后使用 JSON 格式化器验证和检查结构

  • 键盘快捷键:使用 Tab 键在字段之间导航。当复制按钮不可用时,按 Ctrl+A(Cmd+A)选择输出区域中的所有文本以快速复制

大文件指南

CSV 转 JSON 转换器通过上传界面处理最大 10MB 的文件。超出该限制,或需要最佳性能时,请遵循以下指南。

上传限制

方法 文件大小限制 备注
拖放上传 10 MB FileReader 强制执行的硬性限制
粘贴到文本区域 浏览器内存 取决于可用 RAM,渲染较慢
打开文件对话框 10 MB 相同的 FileReader 限制

按数据大小的性能

行数 列数 方法 预期时间
1,000 20 任意 即时
10,000 20 任意 < 100 ms
100,000 20 粘贴文本 < 1 秒
500,000 20 粘贴文本 2-5 秒

处理大文件

  • 超过 10MB 的文件:将内容直接粘贴到文本区域而不是上传。文本区域绕过 FileReader 的大小限制,使用可用的浏览器内存
  • 对于超过 100,000 行的文件,考虑在转换前将 CSV 分割成更小的块
  • 实时预览会随着行数增加而变慢——对于大数据集,保持预览面板折叠以禁用预览
  • 类型推断会增加处理开销。如果只需要字符串输出,在处理大文件时禁用类型推断以获得更快的转换速度

浏览器内存考虑

每 MB 的 CSV 在转换期间大约消耗 2-4 MB 的工作内存(输入 + 解析结构 + JSON 输出)。一个 10MB 的 CSV 文件可能使用 30-40 MB 的浏览器内存。处理大文件时,请关闭其他占用大量内存的标签页。

替代方案

虽然 Toollect CSV 转 JSON 转换器提供了全面的功能集,但针对不同的使用场景也存在多种替代方案。

工具/方法 最适合 限制
Toollect CSV 转 JSON 转换器 基于浏览器、隐私优先、可自定义的转换 需要从网络加载初始页面
PapaParse(JavaScript 库) 在 Node.js 或浏览器应用中进行程序化 CSV 解析 需要编码,无图形界面
csvkit(命令行) 基于 Python 的 CSV 处理和转换管道 需要安装 Python,仅命令行
在线转换服务 快速的一次性转换 数据上传到服务器,隐私问题
Excel Power Query 在 Excel 内进行 CSV 转 JSON 转换 需要 Excel,限于较小数据集
jq(命令行) 处理来自 CSV 转换的 JSON 输出 需要单独的 CSV 转 JSON 步骤,仅命令行

对于大多数需要快速、私密且功能丰富的 CSV 转 JSON 转换而又不想离开浏览器的用户来说,Toollect 转换器提供了功能性和便利性的最佳平衡。

故障排除

问题 可能的原因 解决方案
JSON 显示"[null]"或空对象 分隔符检测失败或选择了错误的分隔符 从下拉菜单中手动选择正确的分隔符
列值缺失/偏移 字段包含无引号的分隔符字符 在 CSV 源中用双引号括起包含分隔符的字段
带有前导零的数字丢失零 类型推断将它们转换为数值 禁用类型推断以将所有值保留为字符串
"第X行有Y列,预期Z列"错误 各行之间的列数不一致 检查 CSV 中是否有额外/缺失的分隔符;带换行符的引用字段可能跨越多行
预览显示乱码字符 文件编码不是 UTF-8 从电子表格应用程序将 CSV 重新导出为 UTF-8
大文件上传失败 文件超过 10MB 限制 将数据直接粘贴到文本区域而不是上传
JSON 输出为空 输入字段为空或仅包含空白 确保 CSV 数据已正确粘贴
复制按钮无响应 浏览器剪贴板权限 检查浏览器设置;使用 Ctrl+C(Cmd+C)作为备用

技术规格

性能基准

数据大小 处理时间 内存使用
1 KB(10 行) < 1 ms < 1 MB
100 KB(1000 行) < 10 ms < 5 MB
1 MB(10000 行) < 100 ms < 50 MB

技术细节

  • 解析器:自定义 RFC 4180 兼容 CSV 解析器,支持完整的引号/转义处理
  • 类型推断:基于正则表达式检测数字、布尔值、null 值
  • 分隔符检测:对前 10 行进行启发式评分,测试逗号/制表符/分号
  • 输出引擎:原生 JSON.stringify(),支持可配置缩进
  • 文件处理FileReader API,10MB 大小限制
  • 剪贴板navigator.clipboard.writeText(),带 2 秒反馈指示器
  • 下载Blob + URL.createObjectURL() 用于内存中文件生成

浏览器兼容性

浏览器 最低版本 状态
Google Chrome 80+ 完全支持
Mozilla Firefox 75+ 完全支持
Apple Safari 13+ 完全支持
Microsoft Edge 80+ 完全支持
Samsung Internet 13+ 完全支持
Opera 67+ 完全支持

功能特色

  • 即时 CSV 转 JSON 转换,实时预览
  • 智能分隔符自动检测,支持手动覆盖
  • 数字、布尔值和 null 值的类型推断
  • 多种输出格式:对象数组、二维数组和键控对象
  • 键大小写转换(camelCase、snake_case、lowercase、UPPERCASE、Capitalize)
  • 可折叠数据预览,在转换前验证您的 CSV

常见问题

什么是 CSV 转 JSON 转换器?
CSV 转 JSON 转换器将以 CSV(逗号分隔值)格式存储的表格数据转换为 JSON(JavaScript 对象表示法)。每一行成为一个对象,每一列成为一个属性。这对于将电子表格数据导入 API、数据库和 JavaScript 应用程序至关重要。
这个 CSV 转 JSON 转换器是免费的吗?
是的,它完全免费,并且完全在您的浏览器中运行。数据永远不会上传到任何服务器。没有使用限制、账户要求或隐藏费用。
如何将 CSV 转换为 JSON?
只需将 CSV 数据粘贴到输入文本区域,或拖放 .csv 文件即可。该工具会自动检测分隔符并实时转换您的数据。您可以通过设置面板自定义分隔符、切换类型推断、选择输出格式等。
我的数据会怎样?
什么也不会发生。所有处理都在您的浏览器中使用 JavaScript 本地完成。您的 CSV 数据永远不会离开您的设备。
我可以自定义分隔符吗?
可以。该工具可以自动检测逗号、制表符和分号。您也可以手动选择分隔符或输入自定义分隔符。当自动检测模式激活时,会显示检测到的分隔符。
它支持大型 CSV 文件吗?
支持,但性能取决于您的浏览器和设备。上传的文件大小限制为 10MB。对于非常大的文件,请将数据直接粘贴到文本区域以进行增量处理。
ESC