数据转换器 · 5 分钟阅读
CSV 到 JSON:从电子表格到结构化数据
CSV 看起来是计算中最简单的格式,但行为却是最棘手的格式之一。 CSV 到 JSON 的转换是这些隐藏规则的体现:引用字段内的逗号、欧洲电子表格中的分号分隔符、应保留文本的一列数字。了解解析器正在做什么可以将失败的导入变成两分钟的修复。
已更新
标题行成为您的键
第一行提供 JSON 属性名称,后面的每一行都成为一个对象。这意味着标头卫生是架构设计:标头中的空格、重复名称和标点符号会产生您无法轻松使用的键。在转换之前重命名为 `snake_case` 或 `camelCase`,并确认没有两列共享名称 - 在大多数实现中,重复的标题会被悄悄覆盖。
CSV 中的所有内容都是字符串
CSV 根本没有类型,因此转换器决定如何解释每一列。数字变成了数字,所以你可以做算术; `true`/`false` 变为布尔值;空字段将变为 `null` 或空字符串,具体取决于您的选择。陷阱是标识符:邮政编码、电话号码、发票号码和版本字符串(如 `1.10`)必须保留字符串,否则会丢失前导零和尾随意义。如果某列看起来是数字,但实际上是标识符,请将其保留为文本。
引号、逗号和换行符
RFC 4180 几十年前就解决了这个问题:如果字段包含逗号、引号或换行符,则将其用双引号括起来,并且内部引号加倍。任何兼容的解析器(Papa Parse 是此处捆绑的解析器)都可以毫不犹豫地处理带有嵌入式逗号和多行单元格的包装字段。天真地以逗号分割的解析器将生成一旦一个地址字段包含逗号就移位的列,这是经典的“为什么我的数据偏移一个”错误。
分隔符因区域设置而异:许多欧洲区域设置中的电子表格导出以分号分隔的文件,TSV 使用制表符。如果每一行都折叠成一个长键,则分隔符是错误的 - 选择分号或制表符并重新运行。
CSV 文件来自哪里(以及它们携带什么)
来自分析工具、CRM 系统、计费平台和数据库的导出是最常见的来源,它们通常包含客户姓名、电子邮件和收入数据。本地转换使该数据完全脱离网络。 YamlBox CSV 到 JSON 转换器在浏览器中进行解析,让您选择分隔符和类型处理,并在网络禁用的情况下继续工作。
尺寸期望
CSV 文件大约每行一个 JSON 对象,因此转换后的文档更大 — 每行重复按键,并且漂亮打印会在顶部添加缩进。对于大到足以让浏览器暂停的文件,转换对象数组然后缩小会得到最小的实际结果,如果流或日志管道是下一个使用者,则转换为 2 行(每行一个对象,无数组)是正确的形状。
CSV 至 JSON — 常见问题
为什么我的 CSV 中的数字以字符串形式显示?
CSV 不存储任何类型,因此转换器按列决定。如果一个值看起来是数字,那么它通常会被转换,但带有前导零或尾随点的标识符需要保留字符串。查找类型推断设置并将标识符列保留为文本。
我可以转换分号分隔的文件吗?
是 - 将分隔符设置为分号。当小数点分隔符为逗号时,许多欧洲电子表格导出使用分号,并且需要逗号的 CSV 解析器否则将返回包含整行的一列。
在浏览器中使用客户数据转换 CSV 是否安全?
它比上传更安全。客户端转换永远不会传输文件,因此包含电子邮件或收入数据的导出保留在您的计算机上,并且该工具继续离线工作 - 通过断开连接并再次转换很容易验证。
这篇文章中提到的工具
更多文章可供阅读
5 分钟阅读
JSON 到 CSV:展平嵌套数据而不失去意义
使用展平为列的嵌套对象、一致的标题和 Excel 安全引用将 JSON 转换为 CSV,并了解哪些形状根本不应该展平。
6 分钟阅读
Excel 到JSON:将工作簿转变为结构化数据
在浏览器中将 Excel 从 XLSX 工作簿转换为 JSON - 标题、日期序列、公式和多张工作表说明,无需上传任何内容。
5 分钟阅读
Markdown 表:生成它们而不是计算管道数
从行或电子表格构建 GitHub 风格的 Markdown 表 - 对齐、转义管道,以及当表不适合 README 时。