TapCub 正式上线:统计、分析、客服一个平台免费用

免费工具 JSON 转 YAML,YAML 转 JSON

贴入 JSON,得到能直接放进配置文件的 YAML;贴入 YAML,得到给接口或脚本用的 JSON。转换时值的类型保持不变:长得像布尔值、日期、数字的字符串会加上引号,换个解析器读也还是原来的意思。

  • 双向转换
  • 出错标出行号
  • 本地处理
转换工具

JSON 和 YAML 互转

示例是一份简单的埋点方案:产品要上报哪些事件、每个事件带哪些属性。点「互换方向」可以把结果再转回去。

严格 JSON,或 YAML 1.2。用 --- 分隔的多个 YAML 文档会转成 JSON 数组。

已转成 YAML。

键数

25

各层对象的键。

嵌套层级

6

对象和列表的层数。

大小(字节)

507

结果按 UTF-8 计算。

YAML
version: 2
owner: growth@example.cn
review: '2026-12-01'
events:
  - name: signup
    description: 完成注册
    properties:
      plan:
        type: string
        enum:
          - free
          - pro
      country:
        type: string
        example: 'NO'
  - name: order_paid
    description: 支付成功
    properties:
      amount:
        type: number
        required: true
      currency:
        type: string
        example: CNY
      coupon:
        type: string
        nullable: true
全部在你的浏览器里计算。这里输入的任何内容都不会上传,TapCub 也不会保存。

版本 v1.0更新于 更新记录

结果怎么看

转换结果告诉你什么

除了转换后的文本,还有一句结论、几个统计数字和一份检查清单。

转换成功,或出错的行列

JSON 按严格 JSON 解析,YAML 按 YAML 1.2 解析。出错时给出解析器停下的位置,错误就在那里或紧挨在前面。选了 JSON → YAML 却贴了 YAML,工具会认出来并提示互换方向。

键数和层级

同一份数据无论写成哪种格式,键数和层级都一样,可以用来快速核对有没有丢东西。层级越深,两种格式手工改起来都越费劲。

YAML 里加了引号的值

只有不加引号就会读成别的类型时才加:'NO'、'2026-12-01'、'on'、'0755',其余一律不加。

检查结果

YAML 输入时会列出:YAML 1.1 工具会读成别的类型的值、JSON 存不下的注释、被展开的锚点、超出 JavaScript 精度的大整数。

转换走的是「数据」而不是文本:JSON 的键顺序会保留,但 YAML 的注释、锚点名称、块样式和流样式的选择不会保留。日期保持为字符串,不会转成时间戳。

使用方法

三步完成

不用安装,数据不上传。

  1. 1

    选方向

    写配置文件、做可读文档用 JSON → YAML;给接口、脚本或任何需要 JSON 的地方用 YAML → JSON。

  2. 2

    贴入内容

    边输边转换。出错时标出行列,值得加引号的值单独提醒。

  3. 3

    复制、下载或互换

    复制结果,下载成 data.yaml / data.json,或点「互换方向」检查来回转换是否一致。

对应规则

JSON 和 YAML 的值怎么对应

YAML 1.2 的设计让 JSON(几乎)成为它的子集。本工具读 YAML 用 1.2 核心 schema,写 YAML 时把 YAML 1.1 解析器可能读成别的类型的值都加上引号。

  • 读 YAML:js-yaml 4.3.2,核心 schema 加 << 合并键;重复键、Tab 缩进都报错
  • 写 YAML:像布尔值、数字、日期、null 的字符串加引号;多行字符串用 | 块
  • 写 JSON:一个文档转成一个值,多个文档转成数组;.inf、.nan 无法转换
JSON 的值和对应的 YAML 写法
JSONYAML 输出原因
"pro"pro普通文字不用引号
"NO"'NO'不加引号在 YAML 1.1 里是 false
"2026-12-01"'2026-12-01'不加引号很多解析器会转成日期
"0755"'0755'不加引号是数字
nullnull两边是同一个关键字
""''空着不写会读成 null
"第一行\n第二行"|- 块换行保持可读
实测例子

YAML 示例转成 JSON 后

YAML 示例用了三种 JSON 没有的写法,下面是它们各自的去向。

示例里 YAML 独有的写法及其 JSON 结果
YAML 里JSON 里说明
# 埋点方案 注释没有了JSON 没有注释,工具会告诉你去掉了几段
defaults: &money 和 amount: *moneyamount 得到一份完整的对象锚点和别名展开
tax: 里的 <<: *money 加 required: false{"type": "number", "required": false}合并键先复制锚点,再用本地的键覆盖
review: 2026-12-01"review": "2026-12-01"保持字符串,不转成时间戳

再把 JSON 转回 YAML,锚点就没有了:数据一样,简写没了。YAML 是手工维护的话,请把 YAML 当作源文件。

常见错误

转换容易出问题的地方

多数意外出在类型上,而不是语法上。

手写 YAML 不加引号

以后手工修改时写下的 country: NO、version: 3.10、zip: 02108,程序读到的未必是你想的。用本工具转换会自动加引号,手改不会。

长 ID 写成数字

超过 9,007,199,254,740,991 的整数在 JavaScript 里会丢精度,本工具也一样。订单号、64 位 ID 两种格式里都写成字符串。

指望注释能保留

JSON 没有放注释的地方。需要跟着数据走的说明,像示例那样放进 description 字段。

把密钥贴进网页工具

配置文件里常有 API 密钥和密码。本工具在本地运行,输入也不会写进分享链接,但贴进任何在线工具之前都建议先去掉密钥。

常见问题

JSON 转 YAML 常见问题

还有其他问题?

直接和 TapCub 团队聊聊——工作日通常几小时内回复。

json转yaml怎么转?

选 JSON → YAML,把 JSON 贴进来即可:对象变成缩进的键,数组变成 - 开头的列表,字符串只在不加引号会变类型时才加引号。缩进可选 2 或 4 个空格,YAML 不允许用 Tab。

yaml转json工具怎么用?

选 YAML → JSON 再贴入 YAML。锚点、别名、合并键会展开,注释会去掉,用 --- 分隔的多个文档会转成 JSON 数组。出错时标出第几行第几列。

YAML 是 JSON 的超集吗?

基本是。YAML 1.2 做了调整,让几乎所有 JSON 文档都是合法的 YAML,所以能把 JSON 直接贴进大多数 YAML 文件。反过来不行:注释、锚点、多行文本块、不加引号的字符串,JSON 都没有对应写法。

为什么 YAML 结果里有些值加了引号?

因为不加引号读回来就是别的类型:NO、on 在 YAML 1.1 里是布尔值,2026-12-01 会被当成日期,0755 是数字。加了引号,不管哪种解析器读,来回转换都一致。

日期为什么还是字符串?

JSON 没有日期类型,所以 2026-12-01 保持文本,而不是转成带时区的时间戳。这样转回去和原来完全一样。

为什么两个方向的键数一样?

统计的是数据而不是文本。如果 YAML → JSON 的键数比预想的多,多半是某个锚点被展开成了好几份。

数据会上传吗?

不会。转换在浏览器里完成,YAML 组件从 tapcub.com 下载一次后在本地运行。输入内容不会写进分享链接,分享链接只带方向和排版选项。

更新记录

更新记录

这个工具的新功能、修复和数据更新,最新的在前。

  1. · v1.0

    首次上线首次上线。

缺功能或发现错误?告诉我们,常被提到的会排进下次更新。 全部工具更新

下一步

让上报的事件和方案对得上

接入网站或 App 后,上报的事件和属性会变成筛选条件、维度和漏斗步骤,到达时还会检查类型。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie