首页 转换工具 CSV/JSON 转换器

🔀 CSV/JSON 转换器

CSV与JSON双向转换,自定义分隔符和引号,首行作为键名

Ad Space
Ad Space

什么是CSV转JSON工具?

CSV转JSON工具是一种将逗号分隔值(CSV)格式的数据转换为JSON(JavaScript Object Notation)格式的在线转换工具。CSV是电子表格和数据库数据交换的传统格式,每行一条记录,字段用逗号分隔。JSON则是现代Web API和前端开发中最常用的数据格式,结构化的键值对形式更易于程序处理。两种格式各有适用场景:CSV适合大量表格数据的导入导出,JSON适合API通信和前端数据处理。本工具支持自定义分隔符、表头映射、嵌套结构生成等功能,帮助开发者在两种格式之间快速切换,是数据迁移、API对接和数据处理工作中的常用工具。

如何使用CSV转JSON工具

  1. 粘贴CSV数据 — 将CSV格式的文本粘贴到输入框中。第一行通常为列名(表头),后续行为数据记录。
  2. 配置转换选项 — 确认分隔符(默认逗号)、引号字符、是否将第一行作为键名。还可以设置数值自动转换等选项。
  3. 获取JSON结果 — 转换后的JSON数据会显示在输出区域,支持格式化显示和压缩显示,可一键复制。

常见使用场景

场景一:数据库数据导入

从数据库导出的CSV数据需要转为JSON格式后导入MongoDB等NoSQL数据库,或用于REST API的测试数据。

场景二:Excel数据处理

将Excel表格另存为CSV后,转为JSON用于前端页面渲染。常见于产品列表、价格表等静态数据的初始化。

场景三:API测试数据准备

将CSV格式的测试数据转为JSON数组,作为API接口的POST请求body进行接口测试。

技术原理

CSV到JSON的转换核心是解析和映射:

// CSV转JSON的核心逻辑
function csvToJson(csv, headers) {
    const lines = csv.trim().split('\n');
    if (!headers) {
        headers = lines.shift().split(',').map(h => h.trim());
    }
    return lines.map(line => {
        const values = parseCSVLine(line); // 处理引号和转义
        const obj = {};
        headers.forEach((header, i) => {
            obj[header] = values[i] || '';
            // 可选:自动转换数字类型
            if (!isNaN(values[i]) && values[i] !== '') {
                obj[header] = Number(values[i]);
            }
        });
        return obj;
    });
}
// 输入: name,age\nAlice,30\nBob,25
// 输出: [{"name":"Alice","age":30},{"name":"Bob","age":25}]

难点在于正确处理字段内的逗号(用引号包裹)和引号内的换行符。

最佳实践与注意事项

常见问题

Q:CSV中有逗号怎么处理?

A:包含逗号的字段必须用双引号包裹,如"Hello, World"。如果字段中同时有双引号,需要将引号转义为两个引号,如"He said ""hello"""。

Q:转换后中文显示乱码怎么办?

A:这通常是编码问题。Excel导出的CSV默认使用GBK/GB2312编码,而Web环境使用UTF-8。解决方法:在Excel中另存为"CSV UTF-8"格式,或在转换工具中选择正确的源编码。

Q:能否将JSON转回CSV?

A:可以。大多数CSV工具都支持双向转换。JSON数组中每个对象对应CSV的一行,对象的键名作为列标题。嵌套对象需要展平处理。

Q:转换结果中的数字为什么是字符串?

A:CSV是纯文本格式,所有值都是字符串。转换工具提供"自动类型检测"选项,可以自动将看起来像数字的字符串转为JSON数字类型。建议开启此选项。

Q:大文件转换很慢怎么办?

A:浏览器端的JavaScript处理大文本效率有限。超过10万行的CSV建议在服务器端处理,或使用流式解析库(如Papa Parse的Worker模式)避免阻塞UI线程。

常见问题

CSV首行必须包含列名吗?
如果勾选"首行作为键名",首行会被作为JSON对象的键使用。如果取消勾选,系统会自动生成列名如column1、column2等。建议CSV数据首行包含描述性的列名。
如何处理CSV中包含分隔符的数据?
如果CSV单元格内包含分隔符(如逗号),需要用引号包围整个单元格(如"内容,含逗号")。本工具会正确解析带引号的字段,处理转义引号等边界情况。
JSON转CSV时如何处理嵌套对象?
嵌套的JSON对象会被转换为JSON字符串。如果需要展平嵌套结构,可以使用工具自动将嵌套对象转为点号路径(如 person.name)。
支持JSON数组转CSV吗?
支持。JSON数组(如 [{...}, {...}])会转为多行CSV,每行对应数组中的一个对象。JSON对象数组是最常见的转换场景。
如何处理CSV中的空值和特殊字符?
空单元格会转为JSON的null或空字符串。特殊字符如换行符、引号等会被正确转义。如果CSV包含中文或Unicode字符,确保文件编码为UTF-8。

🔥 同类热门工具

🏷️ 相关标签

数据处理纯前端转换文件处理JSONAPI开发后端开发免费