什么是 YAML ⇄ JSON 轉換?
YAML (YAML Ain't Markup Language) 和 JSON (JavaScript Object Notation) 都是流行的資料序列化格式。YAML 以其极簡的语法和极高的可读性(通過縮进表示层级)在配置文件(如 Kubernetes, Docker, GitHub Actions)中被广泛使用;而 JSON 则以其严谨的结构和广泛的编程语言支援,成為 Web API 資料交换的标准。
在开发过程中,我們經常需要在两者之間进行轉換,例如將复杂的 Kubernetes 配置轉為 JSON 进行 API 調用,或者將 JSON 資料轉化為更易于人类维護的 YAML 配置文件。
功能特點
雙向轉換
支援从 YAML 到 JSON 以及从 JSON 到 YAML 的實時雙向轉換。
純前端處理
所有資料處理都在您的瀏覽器本地完成,不會上傳到任何伺服器,確保隱私安全。
實時校驗
在您輸入的过程中實時檢測语法错误,并给出直观的提示。
优雅格式化
自動对输出內容进行美化,YAML 支援多层縮进,JSON 支援标准 2 空格縮进。
常見問題 (FAQ)
1. YAML 轉換时报错 "Map keys must be unique" 是什么意思?
这意味着您的 YAML 文件中在同一层级出现了重复的键(Key)。YAML 规范要求在同一個映射(Map)中,键必须是唯一的。
2. 这個工具支援 YAML 的多文檔 (---) 吗?
支援。我們的轉換器會尝试解析所有文檔,并以 JSON 數组的形式输出,或者在从 JSON 轉 YAML 时生成符合規范的多文檔格式。
3. 轉換後 YAML 中的注释會消失吗?
由於資料在轉換过程中會先被解析為記憶體中的 JavaScript 对象,所以原始 YAML 中的注释將無法保留在输出結果中。
4. 為什麼 JSON 轉 YAML 後的縮进不是 4 個空格?
本工具預設采用标准的 2 空格縮进,这是现代开发中 YAML 的主流推薦格式(如 Kubernetes)。这有助于在多层嵌套时保持更好的视覺平衡。
5. YAML 中的布尔值 (true/false) 在 JSON 中如何處理?
YAML 的布尔值(true, false, yes, no)在轉換為 JSON 时會根据规范轉為标准 JSON 布尔类型。注意 YAML 1.2 规范中推薦使用小写的 true/false。
6. JSON 的双引号在 YAML 中是必须的吗?
不一定。YAML 支援多种字符串表示法。JSON 必须使用双引号,而 YAML 可以使用单引号、双引号,或者在没有特殊字符的情况下完全不带引号(Plain Style)。
7. 如何處理 YAML 中的锚点 (&) 和别名 (*)?
我們的解析器完全支援 YAML 的锚点和别名特性。在轉換為 JSON 时,别名引用的資料會被自動展开并内联到对應的 JSON 節点中,因為 JSON 不原生支援引用。
8. 这個工具能處理多大的文件?
由於是純前端處理,限制主要取决于您的瀏覽器可用記憶體。通常对于几兆(MB)级别的 YAML 或 JSON 文件,轉換过程都會非常迅速且稳定。