JLC

JSONL 行数统计器

统计 JSONL 物理行,检查语法与 UTF-8 字节大小

JSON 与数据
🔒 100% 本地运行 — 你的数据不会离开当前页面
由 Evan 维护•最近更新:2026年9月30日
JSON Lines

浏览器本地处理;不自动保存输入。输入最多 1 MiB。

粘贴或编辑时,浏览器可能将 CRLF 和孤立 CR 转成 LF;此时字节数基于文本框内容。需要核对文件原始字节时,请读取 UTF-8 文件并保持未编辑;文件 BOM 会保留用于检查。

按 LF 分行,CRLF 视为一个分隔符。末尾换行只终止上一行;连续换行仍产生空记录。孤立 CR 不分行。UTF-8 行大小不含分隔符。

JSON Lines 不允许 BOM 和空白记录。忽略空行仅改变统计,不能使源文件变为全部有效。最多 20,000 行,每行最多 64 层及 20,000 个结构标记;超限显示未检查完。数值精度、重复键、Schema 和业务规则不在语法检查范围内。

结果

输入或选项改变后,请重新处理以生成当前结果。

页面阅读模式

完整说明还包括常见问题处理、操作示例、代码片段、FAQ 和相关工具,便于核对结果或排查问题。

工具说明

在导入日志或测试数据前检查逐行 JSON。工具按 LF 分行,将 CRLF 视为一个分隔符;末尾换行只终止上一条记录,不凭空增加空记录。结果分别列出物理行、参与统计的记录、空白与忽略行、语法检查结果,以及不含分隔符的 UTF-8 行字节最小值、平均值和最大值。输入总字节包含分隔符。忽略空行只改变统计,不会让原文件符合 JSON Lines。语法检查接受 JSON 标量,不证明数字精度、重复键语义、Schema 或业务规则正确。最多在本地分析 1 MiB、20,000 行,不自动保存原文。 粘贴或编辑可能将 CRLF 及孤立 CR 转为 LF。核对原始字节时请读取 UTF-8 文件并保持文本未编辑;文件 BOM 字节会保留。

场景配方

01

导入前定位真正的空记录

目标:区分末尾终止换行与空白记录。

  1. 粘贴 {"id":1},中间留一空行,再粘贴 {"id":2},最后保留一个换行。
  2. 开启 JSON 语法检查,关闭忽略空行;确认三条物理行、两条语法有效记录、一条空白行,最小行大小为零。
  3. 复制空行原文或下载报告,在源文件移除该行后复查;末尾换行可以保留。

结果:修正后的源文件有两条物理记录,不含空白 JSON Lines 记录。

生产可用片段

终止符不等于新增记录

text

使用可见分隔标记表示输入:
{"id":1}<CR><LF>
<LF>
"😀"<LF>

物理行:3
语法有效值:2;空白行:1
行字节:8、0、6
记录字节:14;分隔字节:4;输入字节:18

失败门诊(高频踩坑)

行数和换行符数量不一致

原因:末尾换行终止一条记录,连续换行才产生空记录。

修复:按工具说明的分隔规则比较物理行,不直接把分隔字符数当成记录数。

很大的数值通过语法检查

原因:这是语法计数器,不是保留十进制精度的转换器。

修复:在使用大 ID 或精确小数前,用合适的数值解析器和 Schema 另行检查。

关闭了语法检查

原因:工具仅测量字节,没有解析值。

修复:结果应视为未检查;判断 JSONL 导入准备情况前请重新启用语法检查。

粘贴后的字节数与文件不同

原因:浏览器文本框可能把 CRLF 和孤立 CR 归一为 LF。

修复:需要比较字节或换行时,读取原始 UTF-8 文件并保持未编辑。编辑后切换为文本框归一化内容。

常见问题

末尾换行会多算一条记录吗?

不会。{} 后跟一个 LF 仍是一条记录,连续两个 LF 才产生一条空记录。CRLF 是一个分隔符,孤立 CR 不会分行。

字节大小包含哪些内容?

每行按 UTF-8 计算,不包含 LF 或 CRLF 分隔符;输入总字节包含全部分隔符。例如 😀 占 4 个 UTF-8 字节,但占 2 个 UTF-16 码元。 核对原始文件字节时请使用 UTF-8 文件读取并保持未编辑;粘贴或编辑可能把 CRLF 及孤立 CR 转成 LF。

忽略空行后就变成合法 JSONL 了吗?

不是。仅从记录统计和语法计数中排除纯空白行,物理位置和空白行数仍保留,源文件不会被标为全部有效。

语法通过能保证数字精度和键唯一吗?

不能。1e400 等大数可以在语法上合法,重复键也能解析。数值可表示性、键唯一性、Schema 和应用语义需要另外检查。

BOM 或很复杂的记录如何处理?

行首 BOM 会显示诊断。单行超过 64 层或 20,000 个结构标记时显示未检查完,不会当作语法有效。

能复制完整的错误行吗?

可以。最多显示 100 个诊断,每条预览前 200 个码元,行复制使用完整原文,空行复制的也是空字符串。报告在本地下载,不自动保存输入。

继续浏览