CSV ⇄ JSON 转换器
【摘要】 作品简介:CSV 与 JSON 双向转换,引号转义、字段内换行与多分隔符识别,本地处理CSV ⇄ JSON 转换器(CSV / JSON Converter)表格数据 CSV 与 JSON 双向互转的轻量网页工具。纯 HTML/CSS/JavaScript 单文件实现,零依赖、零后端,解析与转换全部在浏览器本地完成,数据不出本机。功能特性双向转换:CSV → JSON 与 JSON → CS...

CSV ⇄ JSON 转换器(CSV / JSON Converter)
表格数据 CSV 与 JSON 双向互转的轻量网页工具。纯 HTML/CSS/JavaScript 单文件实现,零依赖、零后端,解析与转换全部在浏览器本地完成,数据不出本机。
功能特性
- 双向转换:
CSV → JSON与JSON → CSV一键切换
- 完整 CSV 解析:支持双引号包围字段、
""转义为单个引号、字段内逗号与换行、空字段;自动识别逗号 / 分号 / Tab / 竖线分隔符,也可手动指定
- 灵活 JSON 输出:默认首行为字段名输出对象数组;关闭表头开关输出二维数组;列缺失自动补
null
- 健壮 CSV 生成:JSON 对象数组自动合并所有键为表头(缺失值留空);值含分隔符、引号或换行时自动加引号并按
""转义;嵌套对象/数组序列化为 JSON 文本
- 预览与导出:表格预览前 20 行、结果一键复制、下载
data.json/data.csv
- 容错提示:未闭合引号、JSON 非数组、解析失败等给出明确错误
工作原理
CSV → JSON
原文 → 自动识别分隔符(首行候选计数)
→ 引号状态机逐字符解析:普通/引号内两态,"" 转义,换行/分隔符仅在引号外生效
→ 表头映射为对象数组(或二维数组)→ JSON.stringify
JSON → CSV
文本 → JSON.parse 校验为数组
→ 对象数组:遍历合并键顺序为表头,逐值 csvEscape(含 " , \n 则加引号并 "" 转义)
→ 二维数组:逐行转义拼接
解析器为手写状态机,不使用正则粗暴切分,保证引号与换行语义正确。
使用场景
- 数据导入导出:Excel / 数据库导出的 CSV 转成接口联调用的 JSON
- 接口数据落表:把 API 返回的 JSON 数组转 CSV 交给运营在表格软件中查看
- 数据清洗:带引号、逗号、换行的复杂 CSV 快速结构化
- 无依赖离线使用:敏感数据不经过任何服务器,本地浏览器内完成转换
快速开始
无需安装与构建,直接用浏览器打开 index.html 即可使用,或在任意静态服务器下访问:
python3 -m http.server 8025
# 访问 http://localhost:8025/index.html
技术栈
- HTML5 + CSS3 + 原生 JavaScript(零第三方依赖)
- CSV 解析:手写引号状态机(
inQ两态 +""转义 + 分隔符/换行判定)
- CSV 生成:
csvEscape(按需加引号 + 双引号转义)
- 导出:
Blob+URL.createObjectURL触发下载;剪贴板navigator.clipboard.writeText
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)