JSON 转 YAML
粘贴 JSON 或选择 UTF-8 文件,即可在浏览器中生成易读的 YAML。在其他地方使用之前,请检查结果及其读取器兼容性限制。
三步转换 JSON
- 粘贴一个 JSON 值,或选择一个不超过 2 MiB 的 UTF-8 JSON 文件。支持对象、数组和标量作为根值;不支持注释和尾随逗号。
- 选择两个或四个空格的缩进,然后选择“转换为 YAML”。请在原始输入中修正报告的语法、重复键、Unicode、数字或资源限制错误。
- 检查 YAML 和显示的兼容性说明,然后复制完整文本或下载 converted.yaml。预览被截断并不意味着通过检查的输出被截断。
转换会保留什么
对象转换为块映射,数组转换为块序列。生成文本保留源属性顺序,包括看起来像数字的键;但下游 YAML 映射不保证应用层面的顺序语义。
每个键和字符串都使用双引号。yes、on、0012 或日期等文本会保持为文本,不依赖读取器对无引号标量的类型推断。嵌入的换行符以转义形式表示,不改变解码后的字符串。
经过验证的数字字面量直接复制,不经过 binary64 转换。大整数、小数末尾的零、指数写法和负零均保留在 YAML 源文本中。其他读取器仍可能舍入、上溢、下溢或丢弃零的符号。
解码后重复的键会被拒绝,而不是被覆盖。空键和类似原型属性的键仍作为普通数据处理。字符串保留其 Unicode 规范化形式;未配对的代理项会被拒绝而不是替换。
值得检查的示例
示例中的姓名 Ada、active true 和 id 9007199254740993 分别转换为带引号的姓名、布尔值和相同的整数字面量。标签 yes 和 on 保持为字符串,备注也保留其中的换行符。
数字 1e4000、1e-400、1E+003、-0 和 -0.0 的字面写法完全保留。这是对源文本的保证,并不保证所有 YAML 读取器都能表示这些值或符号。
空数组变为 [],空字符串则变为带引号的空字符串。单独的 false 或 null 也是有效结果。同一对象中解码后重复的名称会导致错误,且无法下载部分结果。
重要的转换限制
输出遵循 YAML 1.2 Core 数据规则,并非通用的 YAML 1.1 兼容模式。特别是仅用指数形式表示的数字,在旧模式中可能被不同地解释。为字符串加引号无法解决数字读取器的限制。
这是严格的 JSON 转换,不是 JSON5、模板求值器、部署验证器或模式检查器。源文件中的空格、转义写法和任何不支持的注释都不会成为 YAML 元数据;工具不会生成锚点、标签或别名。
输入限为 2 MiB,输出限为 8 MiB,处理时间限为 15 秒。深度、记录数、解码后的标量、数字字面量和指数也有相应限制。失败、取消或超时后不会留下可下载的部分结果。
输出采用不带 BOM 的 UTF-8,并以一个 LF 结尾。较长的带引号键使用 YAML 显式键形式。即使预览被截断,复制和下载仍使用完整且经过验证的文本;其他应用仍可能重新排列键或重新解释数字。
本地转换,不保存历史记录
本地工作线程处理文档;此工具不会上传、通过 URL 导入或保存历史记录。只有在您请求时才会复制或下载。这并不代表对浏览器扩展、网站现有服务或您保留的副本作出安全保证。
