JSONL 转 JSON 转换器

即时将 JSONL(JSON Lines)转换为 JSON 数组。100% 客户端处理,数据不会离开您的浏览器。

输入 JSONL

拖拽 .jsonl 文件到此处,或点击浏览

支持 .jsonl, .ndjson, .json, .txt

作者: Jerry Fan更新于 2026年2月

如何将 JSONL 转换为 JSON

JSONL(JSON Lines)每行存储一个 JSON 对象。转换为标准 JSON 时,每行被单独解析,结果组合成一个 JSON 数组。

我们的转换器完全在浏览器中读取您的 JSONL 文件,不会将任何数据上传到服务器。只需粘贴 JSONL 文本或拖入文件,转换后的 JSON 数组即刻呈现。

输出的 JSON 数组保持原始行顺序。无效行会被跳过并单独报告,方便您修复。

什么是 JSONL 转 JSON 转换?

JSONL 转 JSON 转换将换行分隔格式(每行一个 JSON 对象)转换为标准 JSON 数组。当您需要将 JSONL 数据用于仅接受标准 JSON 的工具时非常有用,例如 API、可视化工具或数据库导入工具。

例如,一个包含三个对象的 JSONL 文件会变成一个包含这三个对象的 JSON 数组,并带有缩进格式以提高可读性。

选择输出形态

把 JSONL 转成 JSON 其实不是一种操作,而是三种,取决于下游消费方期望什么。与 JSONL 的关键区别在于:JSON 数组必须整体解析,读取输出的一方不得不把整个文件放进内存 —— 转换的那一刻,JSONL 的流式优势就没有了。

输出形态适用场景注意
紧凑数组 — [{...},{...}]期望标准 JSON 数组请求体的 API 和服务整个文件是一长行;肉眼难以检查,在 git 里也不好 diff
格式化(缩进)数组配置类文件、代码评审、人工检查对典型记录而言,比紧凑输出大约多 20–40%
对象包裹 — {"data": [...]}要求顶层为对象信封的消费方本工具不直接生成 —— 转换后自行把数组包一层即可

常见用例

API 集成

将 JSONL 日志文件或数据导出转换为 JSON 数组,供 REST API 使用。

数据分析

将 JSONL 数据集转换为 JSON,用于可视化库和分析工具。

数据库导入

将 JSONL 导出转换为 JSON 数组,导入 MongoDB、PostgreSQL 或其他数据库。

机器学习数据准备

在 JSONL 和 JSON 格式之间转换机器学习数据集,适配不同训练框架。

自动化测试与 QA

将 JSONL 测试夹具转换为 JSON 数组,供 Jest、Mocha 或 Playwright 等期望 JSON 输入的集成测试框架使用。

前端开发

将 JSONL 数据导出转换为 JSON 数组,在开发期间作为 React、Vue 或 Angular 应用的模拟数据使用。

同样的转换,在命令行完成

对于已经在服务器上、或要写进脚本里的文件,jq 一个参数就能完成这个转换:slurp 模式读取每一行并收集成一个数组。Python 版本只需三行,且不依赖任何第三方库。

# jq: slurp all JSONL lines into a single JSON array
jq -s '.' records.jsonl > records.json
# Python: same result with the standard library
python3 - <<'PY'
import json
with open('records.jsonl') as f:
rows = [json.loads(line) for line in f if line.strip()]
with open('records.json', 'w') as out:
json.dump(rows, out, indent=2)
PY

两个版本都会把整个数据集加载进内存 —— MB 级没问题,GB 级就很痛苦了。如果目标系统本身接受 JSONL,对大数据量来说,保留行分隔形式通常是更好的工程选择。

常见错误与解决方案

最后一行的尾随逗号

JSONL 文件中每个 JSON 对象的最后一个属性后面不应有尾随逗号。与 JavaScript 不同,JSON 严格禁止尾随逗号。请删除每行最后一个键值对后面的逗号。

空行导致解析失败

JSONL 记录之间的空行可能导致解析器报错。我们的转换器会自动跳过空行,但其他工具可能不会。请确保您的 JSONL 文件在记录之间没有多余的空行。

混合编码(UTF-8 BOM)

使用 UTF-8 BOM(字节顺序标记)保存的文件可能导致第一行解析失败。如果第一行解析失败而其余行正常,请使用文本编辑器将文件重新保存为不带 BOM 的 UTF-8 编码。

常见问题

JSONL 转 JSON 转换器有什么作用?

是的。所有转换都在您的浏览器本地进行,不会将任何数据发送到服务器。您的 JSONL 内容永远不会离开您的设备。

可以用这个 JSONL 转 JSON 转换器转换 NDJSON 吗?

无效行在转换时会被跳过,并单独列出其错误详情。有效行仍然正常转换。

这个 JSONL 转 JSON 转换器会上传我的文件吗?

没有硬性限制。转换器使用流式处理来高效处理大文件,数百 MB 的文件都可以顺畅转换。

JSONL 转 JSON 会保留原始行顺序吗?

可以!使用我们的 JSON 转 JSONL 转换器将 JSON 数组转换回 JSONL 格式。

为什么 JSONL 转 JSON 在第一行失败(UTF-8 BOM)?

转换器采用流式逐行处理方式,不会一次性将整个文件加载到内存中。数百万行的文件都可以转换,不过非常大的文件(500MB 以上)可能需要几秒钟,取决于您设备的性能。

如何将 JSON 转回 JSONL?

是的。转换器在构建 JSON 数组时会保留每行 JSONL 中原始的键顺序。不会对键进行重排、添加或删除。

可以用这个工具转换 NDJSON 文件吗?

可以。NDJSON(换行分隔 JSON)和 JSONL 是相同的格式。您可以上传 .ndjson、.jsonl、.json 或 .txt 文件,都会被正确处理。

与使用 jq 等命令行工具相比有什么优势?

我们的转换器提供可视化界面,支持即时预览、错误高亮和一键下载。与 jq 不同,无需安装任何软件,在任何有浏览器的设备上都能使用。对于脚本化工作流,jq 可能更为适合。

相关工具与指南