ToolMill.io

YAML 给 JSON

需要将配置风格的数据移动到更严格的基于JSON的工作流程时,直接在浏览器中将YAML转换为干净的JSON. 这个页面对于快速有效载荷准备,配置检查,以及将由人编辑的YAML变成API,脚本,验证器通常期望的格式很有用.

数据

试试看

实例

简单的密钥值 YAML
投入
name: ToolMill
active: true
count: 3
产出
{
  "name": "ToolMill",
  "active": true,
  "count": 3
}
嵌入式 YAML 对象
投入
service:
  name: api
  ports:
    - 443
    - 8443
产出
{
  "service": {
    "name": "api",
    "ports": [443, 8443]
  }
}
YAML 列表到 JSON 阵列
投入
users:
  - name: Ava
    role: editor
  - name: Leo
    role: viewer
产出
{
  "users": [
    {
      "name": "Ava",
      "role": "editor"
    },
    {
      "name": "Leo",
      "role": "viewer"
    }
  ]
}

YAML 如何映射到 JSON

YAML映射成为了JSON对象,YAML序列成为了JSON阵列,而scalar值则成为了JSON字符串,数字,布林克,或视其解释方式而变得无效. 这使得此页面对将配置风格的文本转变为更严格的面向机器的格式很有用.

转换前重要的输入规则

YAML严重依赖缩进和列表结构. 一致的间隔,正确使用结号,以及适当嵌入的列表项目比带有明确括号和括号的格式更重要。 如果被粘贴的文本已断开缩进或部分结构,转换可能失败或产生出乎意料的输出.

转换过程中的变化

JSON输出通过在需要时添加括号,括号,逗号,并引用字符串,对结构变得明确. YAML 注释不结转到 JSON 输出中,格式化样式与 JSON 正常化,而不是保留 YAML 片断的原始外观.

常见的转换错误

常见的错误包括断开缩进,列出不正确对齐的项目,缺失的结号,部分被粘贴的片段,以及假设评论或每一个原始格式细节会活过转换. 另一个常见的惊喜是类型解释:如真,假,无效等未引用的值,或者3在JSON输出中可能变成布尔,无效,或者数字而不是字符串.

实际工作流程

在您重新使用自动化或生产中转换的 JSON 之前

在重新使用JSON在部署或自动化工作流程中之前,确认目的地期望相同的结构,scalar解释,并引用你现在以JSON形式看到的行为. 成功的转换是有用的,但与真实消费者的相容性仍然需要单独检查.

YAML 特性和边缘案例

一些YAML特征的表达方式在被转换为JSON后变得不那么明显. 锁定器,别名,注释,格式化样式,以及某些平面板块惯例等,是转换后JSON可能保存核心数据而同时失去面向人类的YAML上下文或演示细节的例子.

YAML 转换后如何解释 JSON 输出

JSON输出是从YAML输入中解析出的结构的一种机器友好的表示. 验证或传入API可能比较容易,但是在将数组,对象,和scalar值作为原始的YAML文件的倒置替换处理之前,仍然有必要审查它们的形状.

当需要将一个配置片断转换为JSON用于API或脚本时使用此页面,在将一个YAML列表交给另一个工具之前检查其结构,或者将一个由人编辑的显示器转换为更严格的验证器可以读取的格式. 它最适合快速粘贴的转换,而不是大规模配置迁移或先进的YAML特性.