CSV ⇄ JSON 转换器

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

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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。