JSON ↔ CSV 转换器
在韩文环境下不乱码的UTF-8 BOM + CRLF CSV双向转换,自动兼容Excel韩语版。数据在客户端处理,不会上传至服务器。
转换结果
请在左侧粘贴数据后点击转换。
此工具的用途
JSON↔CSV转换器是基于浏览器的实用工具,可将JSON数组转换为CSV文件,或将CSV转换为JSON数组。数据不会上传至服务器,仅在浏览器内处理。JSON→CSV方向默认提供自动添加BOM(字节顺序标记,解决韩文在Excel中乱码的元凶)和Windows CRLF换行选项。CSV→JSON方向会自动检测分隔符(逗号·分号·制表符),并依照RFC 4180规范正确解析带引号的单元格·含换行符的单元格·转义引号。转换结果可复制或下载为文件。
适合这些人使用
- 将API JSON响应转换为可在Excel·Google表格中直接打开的CSV
- 将Excel导出的CSV转换为数据库INSERT或REST API请求体所需的JSON
- 处理韩文数据CSV时,通过BOM + CRLF设置解决Excel韩文乱码问题
- 在开发·QA过程中快速转换测试数据格式
- 数据分析团队: 在上传Pandas·BigQuery前进行JSON规范化或核对CSV架构
使用方法 (3个步骤)
- 1通过方向切换按钮选择'JSON → CSV'或'CSV → JSON'。切换方向时示例数据会自动替换。
- 2在输入框中粘贴或编辑要转换的文本。JSON须为对象数组([ {...}, {...} ])格式;若CSV第一行是表头(列名),请打开'包含表头'选项。
- 3确认选项(是否包含BOM·CRLF·是否有表头·数字自动转换)后点击'转换'。结果可复制或下载为文件,行数·列数会以摘要形式显示。
转换规则 · 技术标准
[JSON → CSV] - 表头: 遵循第一个对象的键顺序 - 单元格转义: 若包含逗号·换行·双引号,则用双引号包裹;内部双引号需转义为""(两个双引号) (RFC 4180) - BOM: UTF-8 BOM(EF BB BF) — 防止Excel(韩国)中韩文编码错误 - 换行符: CRLF(\r\n) — 兼容Windows Excel [CSV → JSON] - 自动检测分隔符: 取第一行中出现次数最多的逗号·分号·制表符 - 引号单元格解析: 开引号~闭引号之间视为一个单元格(保留内部换行) - 数字转换: 若值仅由符号·数字·小数点组成(如'-123.45'),则自动转换为number类型(可选) - 去除BOM: 若输入含UTF-8 BOM则自动去除 - 忽略空行: 解析时自动跳过空行
实际案例
案例1: 将API响应JSON转换为Excel用CSV
粘贴从API收到的[{"name":"홍길동","age":30,"city":"서울"}, ...]格式JSON,并转换为JSON→CSV。启用BOM+CRLF选项后下载,即可在Windows Excel中直接打开且韩文不会乱码。列顺序遵循第一个对象的键顺序(name, age, city)。
案例2: 将Excel CSV转换为JSON — 含逗号·引号的地址数据
若地址单元格中包含逗号,例如'서울특별시, 강남구',Excel会自动用双引号包裹该单元格。本工具会依照RFC 4180规范将该单元格正确解析为一个字段,使JSON的address键中原样保留'서울특별시, 강남구'。
案例3: 数字自动转换选项
当CSV列中出现'30'、'1234.5'等看起来像数字的值时,若打开'数字自动转换'选项,会在JSON中转换为number类型(例如: age: 30);若关闭则统一保留为string类型(age: "30")。在DB INSERT·API对接等类型敏感的场景中请务必确认此选项。
常见问题
为什么在韩国版Excel中打开CSV会出现韩文乱码?
Windows版Excel会将不含BOM的UTF-8 CSV按系统区域设置(韩文Windows下为CP949/EUC-KR)错误解析。以UTF-8保存的韩文被当作EUC-KR读取,因而出现乱码。开启本工具的'包含UTF-8 BOM'选项后,文件开头会添加3字节的BOM(EF BB BF),使Excel识别为UTF-8编码,从而正确显示韩文。
JSON输入格式有限制吗?
JSON→CSV转换时,最外层必须是对象数组([ {...}, {...} ])。不支持单个对象{ ... }、嵌套数组或原始值数组(仅含数字·字符串的数组)。嵌套对象(对象中的对象)会通过JSON.stringify序列化后放入单个单元格。
可以处理以分号(;)分隔的CSV吗?
可以。CSV→JSON方向会自动检测分隔符,自动采用第一行中出现次数最多的逗号·分号·制表符。欧洲式CSV通常使用分号,自动检测能够正常识别。若检测结果有误,请检查第一行内容。
转换时若列数不一致会怎样?
在CSV→JSON方向中,若某一行的列数与表头列数不一致,会显示警告信息(row.N.colMismatch)。该行会尽可能解析,列数不足的部分会以空字符串填充,转换本身不会中断。
数据会上传到服务器吗?
不会。所有转换均仅在浏览器JavaScript中处理,输入数据和结果数据都不会通过网络传输。即使包含个人信息·业务机密的数据也可以安全转换。
可以修改下载文件的文件名吗?
目前下载按钮会以'worktool-[时间戳].csv(或.json)'的格式保存文件。如需自定义文件名,请下载后在文件资源管理器中直接修改。也可以通过浏览器自带的'另存为'对话框更改保存位置和名称。
注意事项
- •JSON输入必须为对象数组([ {...}, {...} ])格式,单个对象或原始值数组会导致错误。
- •嵌套对象(对象内的对象·数组)会被序列化为JSON字符串放入单个CSV单元格。如需按列拆分,请先将结构展开后再输入。
- •不直接支持EUC-KR(CP949)编码的CSV。请先在记事本·VS Code等工具中另存为UTF-8编码后再使用。
- •由于浏览器内存限制,处理超大文件(数万行以上)时速度可能变慢,甚至导致标签页崩溃。
- •启用数字自动转换选项时,电话号码·邮编等开头为0的值会被转换为数字而丢失前导0。此时请关闭该选项后再转换。
最后审阅日期: 2026-06-17