AiLounge Tools

数据结构与类型转换

把 JSON 样本推导成 TypeScript 类型或 JSON Schema,并在受控 YAML 子集内完成 JSON↔YAML 往返;全部在浏览器本地计算,不上传正文。纯浏览器本地处理 · 零服务端 API

JSON ↔ YAML(受控子集)

在受控 YAML 子集内双向转换映射、序列、标量、引号字符串、布尔与 null;自动探测方向参数,可控拒绝别名炸弹、标签、块标量与超深结构。

在浏览器中运行

输入与参数

真实示例

{"name":"Ada","active":true,"deleted":null,"empty":{},"tags":["a",2],"created":"2024-05-01","__proto__":{"polluted":false}}
→ name: Ada
active: true
deleted: null
empty: {}
tags:
  - a
  - 2
created: "2024-05-01"
__proto__:
  polluted: false

限制与失败处理

只接受单文档受控 YAML 子集,不追求完整 YAML 1.2 兼容;流集合 []/{} 只支持单行;无锚点、无标签、无块标量、无复杂键。日期仅作字符串,别名/二进制明确拒绝。输入上限 1 MiB / 深度 64 / 60000 节点,错误含行列号。

FAQ

Date、别名和二进制怎么处理?

YAML 1.2 / JSON 都没有 Date 类型,日期样式标量保留为字符串并在输出时加引号;& 锚点、* 别名和 << 合并键一律拒绝(别名炸弹绝不展开);!!binary 等标签一律拒绝,请把二进制写成带引号的 base64 字符串。

"true" 与 true 会混淆吗?

不会。字符串形式的 true、null、数字和日期都会被引号包裹,输出再解析回 JSON 时仍是字符串;布尔/null 则不带引号。

支持多文档或块标量吗?

不支持。---/... 标记、|/> 块标量、指令、复杂键、非十进制数字、.inf/.nan 都会给出带行列号的错误,避免隐式展开与数值歧义。