如何将 JSON 转换为 YAML
输入有效 JSON 后执行转换,就能得到块样式的 YAML 文本;你还可以设置缩进,并选择是否排序映射键。
先确认输入与输出
JSON 和 YAML 都常用于表达结构化数据,但书写方式不同。这个工具适合把已经准备好的 JSON 文本整理成块样式的 YAML 文本,便于查看对象层级、嵌套内容和数组结构。转换时可以根据阅读习惯调整缩进,也可以改变映射键的排列偏好。
按顺序完成转换
-
准备要转换的 JSON 文本。内容可以是一个对象、包含对象的更深层结构,也可以直接是数组;如果暂时没有内容,输入区域可以保持为空。
-
把 JSON 文本输入对应区域。提交前先看一下括号、逗号、键名和字符串的写法,普通说明文字或其他格式不能替代 JSON 文本。JSON 的键名和字符串通常需要使用双引号,少一个符号也可能让整段内容失去有效性。
-
按输出用途选择缩进数值。没有特别设置时,缩进采用 2;需要更宽或更窄的层级间距时,可以改用其他数值设置。缩进只负责呈现层级,不会修正输入中的语法问题。
-
如果希望映射键按照排序后的顺序显示,可以开启键排序偏好;该偏好默认关闭。若需要保留输入中较直观的排列方式,则可维持默认状态再执行转换。
-
执行转换并查看生成区域。有效 JSON 会被整理为块样式 YAML,非空数组会通过列表标记呈现,带有 YAML 特殊含义的字符串可能会以引号包围,Unicode 字符也可以保留在结果中。
-
使用结果前检查层级关系,重点查看对象内部的数组、数组中的对象,以及字符串是否仍按预期表达。空字符串或只含空白的输入属于允许情况,执行后会得到成功状态,但生成文本为空;这与没有产生响应不同。
从结果判断下一步
成功时,结果应表现为一段 YAML 文本,层级主要通过缩进阅读,数组项目则可从列表标记中辨认。改变缩进后,同一数据的视觉层次会不同;开启键排序后,映射键的显示顺序也可能变化,因此比较两次结果时应同时记录这些选项。若结果状态表示转换未成功,先把注意力放回输入语法,因为无效 JSON 不会生成 YAML 文本;即使 YAML 生成阶段出现序列化失败,也应把它视为未成功的转换。
使用示例
你正在整理一份含有中文名称和物品数组的配置数据,希望先查看它对应的 YAML 结构。
输入 {"name":"小林","items":["书","笔"]},保持默认缩进后执行转换,再查看生成内容中的对象层级和数组列表标记。
结果应为块样式 YAML,顶层对象中的 name 表现为映射项,items 表现为带列表标记的数组,中文字符可以保留。
使用限制
- 输入需要符合 JSON 语法;输入无效或 YAML 序列化阶段失败时,转换不会成功,也不会提供 YAML 文本。
常见错误
- 如果键名、字符串或成对符号不符合 JSON 写法,输入就不是有效 JSON。请先修正语法并重新提交,因为这类输入不会产生 YAML 文本。
常见问题
不输入 JSON 也能执行转换吗?
当输入为空或只含空白时,可以执行转换,并会成功得到空的 YAML 文本;JSON 输入本身不是必填项。
嵌套对象和数组能转换吗?
当内容属于有效 JSON 时,嵌套对象和数组都能参与转换;非空数组会在块样式结果中显示列表标记。
普通文本可以直接转换成 YAML 吗?
当所谓的普通文本不符合 JSON 语法时,不能直接获得转换结果;请先把内容整理成有效 JSON。