JSON 与数据处理指南
JSON Lines:逐行记录、流式处理与校验
区分 JSONL 与 JSON 数组,理解转义换行、坏记录定位和逐行处理。
每一行都是独立 JSON 值
JSON Lines 使用 UTF-8,每行是一个合法 JSON 值,外面没有数组括号,记录之间也不加逗号。
对象最常见,但其他 JSON 值也可作为记录;空行不是合法 JSON 值,需要明确处理策略。
{"id":1,"name":"Ada"}
{"id":2,"name":"Lin"}字段换行需要转义
字符串中的换行应在一条记录内写为反斜杠 n,字面换行会拆开记录。
把单个对象美化成多行会破坏 JSONL 分帧,导出时应让每条记录保持单行。
{"note":"first\nsecond"}定位出错记录
应逐行校验并报告实际行号,第 37 条出错不需要先猜整个 JSON 数组的边界。
明确选择停止还是隔离坏记录,静默跳过可能丢失事件或业务记录。
格式可流式不代表工具无限流式
JSONL 支持生产者逐条写入,但某个转换器仍可能一次读取整个文件;本站有浏览器输入限制。
大型导出应采用服务端流式解析,小型转换则在下载前核对记录数和长整数 ID。