Format Atlas

对比

JSON Lines 与 CSV

JSON Lines 在每行放置一个独立 JSON 值,CSV 则将字段排列为行和列。JSON Lines 更自然地表示嵌套或结构可变的记录;CSV 适合列结构一致的表格数据。

应该选择哪种格式?

在电子表格或数据库间交换列一致的表格时选 CSV;需要嵌套值或逐条流式处理时可考虑 JSON Lines。与接收方约定编码、分隔符、换行、模式及电子表格的自动转换行为。

适用于 JSON Lines

逐行处理的日志和记录 · JSON 记录的流式交换

  • 逐条读取和写入记录
  • 用常见文本工具追加或合并数据

适用于 CSV

表格数据交换

  • 在应用间传递一个简单表格

基本信息

项目JSON LinesCSV
扩展名.jsonl, .ndjson.csv
MIME 类型application/jsonltext/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 值吗?

它没有可移植的原生嵌套结构。单元格可以存放编码文本,但接收方需要约定的规则或模式才能解释。

了解详情

参考资料与规范