对比
JSON Lines 与 CSV
JSON Lines 在每行放置一个独立 JSON 值,CSV 则将字段排列为行和列。JSON Lines 更自然地表示嵌套或结构可变的记录;CSV 适合列结构一致的表格数据。
应该选择哪种格式?
在电子表格或数据库间交换列一致的表格时选 CSV;需要嵌套值或逐条流式处理时可考虑 JSON Lines。与接收方约定编码、分隔符、换行、模式及电子表格的自动转换行为。
适用于 JSON Lines
逐行处理的日志和记录 · JSON 记录的流式交换
- 逐条读取和写入记录
- 用常见文本工具追加或合并数据
适用于 CSV
表格数据交换
- 在应用间传递一个简单表格
基本信息
| 项目 | JSON Lines | CSV |
|---|---|---|
| 扩展名 | .jsonl, .ndjson | .csv |
| MIME 类型 | application/jsonl | text/csv |
| 常见用途 | 逐行处理的日志和记录 · JSON 记录的流式交换 | 表格数据交换 |
| 打开方式 | 用文本编辑器或支持 JSON Lines 的工具打开。逐行验证 JSON,有助于定位语法错误所在的记录。 | 导入电子表格时请设置字符编码和分隔符。检查前导零、类似日期的值和长数字不会被自动转换。 |
| 导出或转换 | 转换为 JSON 数组时,把各行汇集为数组元素;转换回 JSON Lines 时,每个值单独写一行。处理大文件时要留意内存占用。 | 将XLSX导出为CSV通常只写出一个选定工作表的值。请另行保留公式、格式、其他工作表和图表。 |
按用途选择
逐条读取和写入记录
逐行处理的日志和记录 · JSON 记录的流式交换
JSON Lines用常见文本工具追加或合并数据
逐行处理的日志和记录 · JSON 记录的流式交换
JSON Lines在应用间传递一个简单表格
表格数据交换
CSV关键点 1
每行 JSON Lines 都包含一个 JSON 值,可以是对象、数组、字符串或数字。CSV 是由行和字段组成的表;列含义和类型通常另行约定,因为 CSV 没有通用的类型模式。
进一步了解差异关键点 2
JSON 值可以包含嵌套对象和数组。CSV 通常要求每行列结构一致,因此嵌套或可选字段需要单独的模式或自定义编码。
进一步了解差异进一步了解差异
常规表格使用 CSV;记录有嵌套结构或需逐条处理时使用 JSON Lines。解析 CSV 时遵循引号、分隔符和字段内换行规则。
- 两者都是可增量处理的文本格式,但 CSV 解析器必须正确处理引号、分隔符和字段内换行。
- 转换时应定义表头、列类型、缺失值、空字符串、日期和前导零的映射,并在往返后验证值。
常见问题
CSV 能直接表示嵌套 JSON 值吗?
它没有可移植的原生嵌套结构。单元格可以存放编码文本,但接收方需要约定的规则或模式才能解释。