JSONL / NDJSON 转换

NDJSON 与 JSON 数组双向转换:逐行解析、行号报错、坏行可跳过,日志数据处理常用。

日志系统、流式管道和大模型 API 都偏爱 JSON Lines(NDJSON):每行一个独立的 JSON 对象,追加写不破坏旧数据、流式读不用等整个文件。但它给人和常规编辑器带来麻烦——几千行对象没有逗号没有方括号,想整体看一眼、排序、筛选就得先转成 JSON 数组。

本工具做双向转换。NDJSON 转 JSON 数组时逐行解析:哪一行坏了解析器会精确报到行号,而不是笼统地说「解析失败」;宽松模式可以跳过坏行继续,处理半截日志特别有用。反向转换把数组压成每行一个对象,直接可作 NDJSON 写入。

NDJSON 的错误是「行的」错误

标准 JSON 一处语法错,整个文件都废了;NDJSON 的设计就是隔离——每行独立成立。所以这里的解析器按行报告:第几行、什么原因,一目了然。空行自动跳过,// 开头的注释行也不计入结果,这是 jq 与 NDJSON 生态的常见约定。

两个方向各解决什么问题

NDJSON → 数组:把日志文件变成可以粘贴给 jq、JSONPath、Mock 数据生成器等工具的整体 JSON,也方便肉眼看结构。数组 → NDJSON:把一份批量导出的 JSON 拆成逐行格式,供 append-only 写入、逐行导入数据库或喂给流式接口。换向时把输出带回输入即可往返验证。

常见问题

什么是 NDJSON?和 JSON 有什么区别?
NDJSON(Newline Delimited JSON,也叫 JSON Lines)约定每行恰好一个合法的 JSON 值,行与行之间没有任何逗号或包裹括号。区别在于结构:JSON 数组是一个整体(读写都要完整解析),NDJSON 是行的序列(可以追加、可以流式逐行读)。
坏行能跳过吗?会不会污染结果?
勾选「跳过解析失败的行」后,解析器会跳过坏行并显示跳过的行号列表,结果只含成功解析的行。跳过是有声明的——跳了哪几行都列出来,不会静默吞掉数据。
转换是在本地进行的吗?
是。解析与序列化全部在浏览器内完成,日志这类经常含敏感信息的数据不会离开页面。

相关工具