登录
No.20核心2 条来源

JSON 与 JSONLJSON & JSON Lines

课堂投屏

一句话

JSON 是程序之间交换结构化数据的文本格式;JSONL 把多条记录分行存放,每行一个 JSON。

大白话

JSON 像一张填好的标准表单:每一栏都有栏名和内容,别的程序照着栏名就能读;JSONL 像一沓这样的表单,一行一张。

比喻的边界

纸质表单写错一格,人还能看懂;JSON 多一个逗号或少一个引号,整份都读不出来。JSONL 好一些,坏一行不影响其他行。

拿去就能用

开始做

我要把存成 JSON,给前端页面读取。帮我设计字段名和结构,先给一个含两三条记录的示例,说明每个字段的类型。确认后再生成完整文件,并检查它是合法的 JSON。

还差:一份数据,发给 AI 前记得换掉

出错了

我导出的 JSONL 文件有两万行,导入时在第 873 行报错。我怀疑那一行文字里有没转义的换行或引号,先帮我单独取出这一行检查,确认原因后再批量修,不要改动其他行。

想做深

我的接口返回格式很乱:有时是数组,有时是对象,出错时又是一段文字。帮我统一成一套格式,分别写出成功、列表和出错时的样子,先给示例让我确认,再改代码。

别这样说 → 这样说

别这样说

JSON 格式肯定哪错了,帮我改对。

这样说

读取 config.json 时报 “Unexpected token } in JSON at position 214”。文件内容贴在下面,密钥已换成 ***。帮我定位第 214 个字符附近的问题,说明哪里不符合 JSON 规则,再给出修好的版本。

差别:给了报错位置和文件内容,并先脱敏再贴。

容易误解:

误解JSON 就是 JavaScript 对象,可以写注释、末尾多个逗号也没事。

其实是JSON 规则更严:键必须用双引号,不能有注释,也不能有多余的结尾逗号。

展开专业理解

JSON 与编程语言无关,值只有六种:对象、数组、字符串、数字、true 或 false、null。JSONL(JSON Lines)要求 UTF-8 编码,每行是一个独立合法的 JSON 值,用换行分隔,适合日志、导出数据和需要逐条处理的大文件。一个完整的 JSON 文件不能直接按行拆开当 JSONL 用。

来源

  1. IETF RFC 8259:The JSON Data Interchange Format 核对于 2026-09-26
  2. JSON Lines 核对于 2026-09-26