YAML 转 JSONL 转换器
即时将 YAML 文档转换为 JSONL(JSON Lines)格式。粘贴、输入或上传您的 YAML 文件。
YAML 输入
拖拽 .yaml 文件到此处,或点击浏览
支持 .yaml, .yml, .txt 文件
YAML 输入
拖拽 .yaml 文件到此处,或点击浏览
支持 .yaml, .yml, .txt 文件
JSONL 输出
JSONL 输出将显示在这里...
类型歧义:YAML 标量在 JSON 里会变成什么
YAML 的便利之处 —— 不带引号的标量 —— 恰恰是转换它的危险所在。每个不带引号的值都必须被解析成一个确定的 JSON 类型,而 YAML 1.1 的规则常常出人意料。以下是本转换器处理几个经典歧义的方式:
| YAML 源 | 解析为 | 如果您想要字符串 |
|---|---|---|
| yes / no / on / off | 布尔值(YAML 1.1 的历史遗产) | 在源文件里加引号:"yes" |
| 3.0.1 | 字符串(两个点不可能是数字) | 本身已经安全 —— 但单独的 3.0 会是浮点数 3 |
| 2024-03-05 | JSON 输出中为字符串(日期序列化为 ISO 文本) | 在源文件里加引号,把意图写明确 |
| 0o777 / 0x1F | 数字 511 / 31 —— 八进制和十六进制记法 | 给它们加引号;文件权限变成 511 会把所有人搞糊涂 |
如何将 YAML 转换为 JSONL
将 YAML 数据粘贴到输入区域或上传 .yaml 文件。使用 --- 分隔多个 YAML 文档。
转换器会自动解析每个 YAML 文档并将其转换为一行 JSON。每个 YAML 文档在 JSONL 输出中成为一行。
将转换后的 JSONL 复制到剪贴板或下载为 .jsonl 文件。每行包含一个有效的 JSON 对象,对应一个 YAML 文档。
什么是 YAML 转 JSONL 转换?
YAML 是一种人类可读的数据序列化格式,广泛用于配置文件、CI/CD 管道和 Kubernetes 清单。JSONL(JSON Lines)每行存储一个 JSON 对象,针对数据流式传输和机器处理进行了优化。
将 YAML 转换为 JSONL 可以将人类可读的配置数据转换为机器友好的流式格式。每个 YAML 文档(用 --- 分隔)在输出中成为一行 JSON,便于使用标准 JSON 工具进行处理。
真实场景:把 Kubernetes 清单变成可查询的 JSONL
多文档流 —— 用 --- 分隔的 YAML 文档 —— 与 JSONL 的行一一对应。正是这种对应关系让这个转换在实践中很有用:一目录的 Kubernetes 清单变成了一份可以逐行查询的数据集:
# 所有清单 → 一个 JSONL 文件(yq v4)yq eval-all -o=json -I=0 '.' manifests/*.yaml > cluster.jsonl# 接下来标准 JSONL 工具全都适用 —— 例如列出每个 deployment 的镜像:jq -r 'select(.kind == "Deployment") | .spec.template.spec.containers[].image' cluster.jsonl
每个 YAML 文档都变成了一条可以 grep、可以用 jq 处理的行。这个浏览器工具应用同样的「一文档一行」映射 —— 粘贴一段多文档 YAML 流,每个 --- 分节都会变成独立的 JSONL 记录。
常见转换错误
无效的 YAML 语法
YAML 对缩进非常敏感。请确保一致使用空格(而非制表符)进行缩进。常见问题包括嵌套不正确、键后缺少冒号或引号不匹配。
缺少文档分隔符
转换多个 YAML 文档时,每个文档必须用单独一行的 --- 分隔。没有分隔符的话,整个输入会被视为单个文档。
歧义值
YAML 会自动解释某些值:'yes'/'no' 变成布尔值,不加引号的数字变成数值类型。如果需要将这些作为字符串保留,请在 YAML 输入中用引号包裹。
常见用例
数据管道迁移
将基于 YAML 的数据配置转换为 JSONL,用于现代数据管道和流式架构。
配置转数据
将应用配置文件从 YAML 转换为 JSONL,以便进行程序化处理和分析。
K8s 清单处理
将 Kubernetes YAML 清单转换为 JSONL,用于批量处理、审计或跨集群迁移。
API 测试
将 YAML 测试夹具转换为 JSONL 格式,用于 API 测试工具和批量请求处理器。
日志格式转换
将 YAML 格式的日志转换为 JSONL,以便接入 Elasticsearch 或 Splunk 等日志分析平台。
ML 数据准备
将 YAML 标注的数据集转换为 JSONL 格式,用于机器学习训练管道和微调。
常见问题
YAML 转 JSONL 转换器如何处理多文档 YAML?
YAML 转 JSONL 转换将 YAML 文档转换为 JSON Lines 格式。每个 YAML 文档(用 --- 分隔)在输出中成为一行有效的 JSON。这对于将人类可读的配置转换为机器可处理的数据非常有用。
YAML 转 JSONL 会保留日期和布尔值等数据类型吗?
输入中的多个 YAML 文档用 ---(三个破折号)分隔。每个文档独立解析并转换为输出中的单独一行 JSON。包含 5 个 YAML 文档的文件会生成 5 行 JSONL。
这个 YAML 转 JSONL 转换器会上传我的数据吗?
是的,YAML 数据类型会映射到 JSON 等价类型:YAML 映射变成 JSON 对象,序列变成数组,标量类型(字符串、数字、布尔值、null)会被保留。注意 YAML 特有的类型如日期会被转换为字符串。
可以将包含锚点和别名的 YAML 转换为 JSONL 吗?
可以,该工具可以处理大型 YAML 文件。但由于 YAML 必须作为完整文档解析(不能像 JSONL 那样逐行流式处理),非常大的文件可能需要更长的处理时间。文件在浏览器中本地处理。
JSONL 输出中如何处理 YAML 标签?
YAML 注释(以 # 开头的行)在转换时会被丢弃,因为 JSON 不支持注释。实际数据内容会完整保留在 JSONL 输出中。
如何将 JSONL 转回 YAML?
可以,单个 YAML 文档(不含 ---)会被转换为单行 JSON。--- 分隔符仅在一个文件中包含多个文档时才需要。
可以将包含注释的 YAML 转换为 JSONL 吗?
可以,您可以使用我们的 JSONL 转 YAML 转换器将 JSONL 数据转换回 YAML 格式。每行 JSON 在输出中成为一个单独的 YAML 文档。
YAML 合并键 (<<) 在转换中会怎样处理?
所有特殊字符在转换过程中都会被正确处理。包含冒号、井号或其他特殊字符的 YAML 字符串会被正确解析并输出为适当转义的 JSON 字符串。