JSON / YAML 互转

在浏览器本地转换 JSON 与 YAML 配置,使用 JSON 兼容类型,检查循环引用、超大整数和嵌套深度,不执行自定义 YAML 标签。

核心处理在浏览器本地完成,不主动上传输入内容;本组工具不加载第三方广告。请勿使用真实生产密钥测试。

输入

未选择文件

UTF-8 编码,最多 1 MiB。导入后选择转换方向并点击处理。

结果

准备就绪。

使用说明与限制

如何转换配置文件?

  1. 选择转换方向,粘贴 JSON 或 YAML,也可以导入 UTF-8 的 .json、.yaml、.yml 文件。
  2. 点击“处理”。JSON → YAML 使用两空格缩进;YAML → JSON 输出格式化 JSON。
  3. 检查布尔值、编号、大整数等容易产生类型差异的字段,再复制或下载结果。转换的是数据,不保证保留配置文件原来的排版。

示例:看起来像日期或数字的字符串

service: example
enabled: true
release: 2026-11-14
account: "001"
tags:
  - dev
  - local

转换后,enabled 是布尔值,release 保留日期形状的字符串,account 保留 "001"。希望保留编号、版本号或超大整数的原样文本时,建议明确加引号。

哪些内容会改变或被拒绝?

  • 采用 JSON 兼容类型:对象、数组、字符串、数字、布尔值和 null。不执行函数或自定义标签;不提供多文档 YAML 合并。
  • 注释、原有缩进、引号风格和锚点写法不会原样保留。可表示的数据别名会按实际数据展开,循环引用无法转成 JSON。
  • 拒绝非有限数和超过 JavaScript 安全整数范围的整数。整数绝对值大于 9007199254740991 时,请在源文件里改成带引号的字符串。
  • 数据深度、节点数和展开后的文本量都有保护上限。少量 YAML 也可能因大量重复别名展开而超限,此时应精简配置,不能只看原文件大小。

报缩进错误或重复键怎么办?

使用空格缩进,不混入 Tab;同一级键名保持一致缩进,序列项使用 - 。同一对象里不要重复声明同一个键。若转换后字符串类型和预期不同,先为源 YAML 中的歧义值加引号,再重新处理。

文本长度上限为 1,048,576 个 UTF-16 编码单元,约相当于同数量的常见中英文字符;emoji 可能占两个或更多单元。支持文件导入的工具另有 1 MiB 文件大小上限,文件需为 UTF-8 编码。