JSON Lines 转换
JSON Lines Converter
在 NDJSON 和 JSON 数组之间互转,解析不了的行不会中止转换,而是按行号列出来。
把 JSON 数组转成 JSON Lines——一行一条记录,日志管道和 BigQuery 要的格式——再转回来。它也能读没有任何分隔符的 JSON 值流,几个日志库会输出这种东西,而 `JSON.parse` 直接拒收。
输入
拖入 .json、.jsonl 或 .ndjson 文件
在这个标签页里读取,不上传。
一个 JSON 数组,或者干脆没有分隔符的一串值——后者正是有几个日志库会输出的样子,也是 `JSON.parse` 会拒绝的样子。
输出
预览
| ts | level | msg | ms |
|---|---|---|---|
| 2025-08-27T09:00:00Z | info | started | 12 |
| 2025-08-27T09:00:04Z | warn | slow query | 2100 |
| 2025-08-27T09:00:09Z | error | upstream 502 |
前 200 条记录里所有键的并集。
记录
3
输入
246 B
输出
209 B
怎么用
选方向
要喂给流式处理的东西时,数组转行;手上有一个日志文件、想把它当一份文档处理时,行转数组。
把文件拖进来
`.json`、`.jsonl` 和 `.ndjson` 都接受——NDJSON 和 JSON Lines 是同一种格式的两个名字。
检查没能解析的行
一行坏了不会中止转换。它会按行号连同失败的文本列出来,通常是轮转日志末尾被截断的一条记录。
用预览看形状
表格显示前两百条记录里每条记录键的并集,这是发现一半日志行有一个别的行没有的字段最快的办法。
常见问题
JSON Lines 和 NDJSON 有什么区别?
没有要紧的区别。同一个约定的两个名字——一行一个 JSON 值,换行分隔,外面不套数组。有的工具用这个扩展名,有的用那个,这里两种都读。
能处理几个 GB 的日志文件吗?
不能。整个文件读进标签页,在内存里转换,再作为第二个字符串保存。几十 MB 是实际的上限;超过这个,命令行上的 `jq -c` 才是对的工具,它会流式处理。
为什么要给键排序?
因为 JSON Lines 通常是用 `diff` 比较的,而 `diff` 是逐行比较。同一份数据两次导出、键顺序不同,就是完全不同的两行。排序让它们成为相同的文本。
嵌套对象会怎样?
保持嵌套——JSON Lines 的一条记录是一个完整的 JSON 值,所以嵌套没问题,什么都不会被拍平。如果你想从里面拿出列来,JSON 转 CSV 工具才是拍平的那个。
可以从这些接进来
JSON ⇄ CSV 互转
JSON ⇄ CSV
把嵌套 JSON 按点路径列名拍平成列,或者从表格重新拼回对象。
jq 在线试验场
jq Playground
在浏览器里对粘贴的 JSON 跑 jq 1.7 过滤器,附一份速查表,并给出等效的命令行。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
CSV 查看器
CSV Viewer
打开很大的分隔符文件,识别列类型、给出列统计和排序,全程不把整份文件读进内存。
jq 在线试验场
jq Playground
在浏览器里对粘贴的 JSON 跑 jq 1.7 过滤器,附一份速查表,并给出等效的命令行。
JSON ⇄ CSV 互转
JSON ⇄ CSV
把嵌套 JSON 按点路径列名拍平成列,或者从表格重新拼回对象。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。