跳到主内容
UniKit

JSONL格式化

校验并格式化 JSON Lines(NDJSON):逐行检查每一行的 JSON 合法性并指出出错行号,可压缩或美化输出,支持 NDJSON 与 JSON 数组互转,并按需递归排序对象的键。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

格式化结果

这个工具能做什么

  • 导入日志或导出数据前先体检:逐行检查 NDJSON 有没有坏行,直接指出是第几行不合法。
  • 把一行一个 JSON 的压缩数据展开成可读的 JSON 数组,方便在编辑器里折叠查看结构。
  • 把 JSON 数组转成 NDJSON,喂给支持流式读取的日志系统、Fluentd 或大数据工具。
  • 统一字段顺序:勾选递归排序键后,每条记录的对象键都按名称排列,便于和上一版数据做逐行比对。

示例

输入

{"id":1,"name":"a"}
{"id":2,"name":"b"}
{"id":3,"name":"c"}

输出

{"id":1,"name":"a"}
{"id":2,"name":"b"}
{"id":3,"name":"c"}

默认输出 NDJSON(每行一条,末尾补一个换行)。把输出格式切成「JSON 数组」会得到美化后的数组;勾选排序后每条记录里的对象键会递归按名称排列。

常见问题

空行和行尾空格会被当成错误吗?

不会。空行会被忽略并单独计数,每行的首尾空白也会先裁掉再解析,所以从编辑器或日志里复制出来的数据不会误报。

整个文件其实是一个 JSON 数组怎么办?

会自动识别并展开成多条记录,再按你选的格式输出。如果数组语法本身不合法,就退回逐行校验并给出行号,不会因为整体解析失败就丢掉所有行信息。

报错只给行号,不给列号吗?

对。NDJSON 的定位单位是行,报错会说明第几行以及错误类型:这里出现了不该有的字符、内容意外结束、JSON 结束后还有多余内容等。它只报告第一处错误,修好后再解析会继续提示下一处。

NDJSON 和 JSON Lines 是一回事吗?

基本是同一种格式的两种叫法,都是每行一个独立、完整的 JSON 值,行与行之间不共享结构。区别只在细节约定:NDJSON 通常要求 UTF-8 且每行以换行结束,工具输出时会补上末尾换行;有些系统则要求文件最后一行不带换行。

数据会被上传到服务器吗?

不会。解析、校验与格式化全部在浏览器里完成,页面不发送网络请求,断网也能用,日志内容不会离开你的机器。

关键词:jsonlndjsonjson linesjsonl 格式化ndjson 校验每行一个 jsonjson array格式校验line numberformatter

同类工具