開發者工具2026-05-10

YAML 格式化器:網上格式化、驗證同美化 YAML

YAML(YAML 唔係標記語言)已經成為雲端原生生態系統嘅首選組態格式 — Kubernetes manifests、Docker Compose files、Ansible playbooks、GitHub Actions workflows 同 CI/CD pipelines 全部都係用 YAML 寫。佢嘅人性化語法(冇括號、簡單字串唔使引號、容許註解)令佢比 JSON 更易讀,但佢依賴縮排嚟定義結構就令佢特別容易出錯。喺應該用兩個空格嘅地方出現一個 tab 字元,或者一個喺錯巢狀層級嘅對唔齊 key,可以沉默咁改變成個組態嘅語義 — 或者喺第 47 行出一個神秘嘅解析錯誤,但問題實際上發生喺第 12 行。我哋嘅 YAML 格式化器用一致嘅 2 空格縮排美化亂晒嘅 YAML、用精確嘅錯誤位置同簡單易明嘅解釋驗證語法,同埋雙向轉換 YAML 同 JSON。佢偵測常見陷阱 — 用 tab 做縮排(YAML 禁止 tab)、同一文件內唔一致嘅縮排、重複 key(YAML 會沉默覆蓋)同挪威問題(冇引號嘅國家代碼如 'NO' 被解讀做布林值 false)。工具處理多文件 YAML 檔案(由 --- 分隔)同支援 YAML 1.2 規範,包括錨點、別名、標籤同多行字串風格。所有處理都喺你個瀏覽器度執行 — 你嘅 Kubernetes secrets、deployment configs 同 CI/CD credentials 永遠唔會離開你部機。

code

YAML格式化工具

免費 · 無需註冊

免費試用此工具 →open_in_new

分步指南

1

貼上、輸入或上傳 YAML

貼你嘅 YAML 落編輯器度或上傳 .yaml / .yml 檔案。編輯器包含標量、key、序列同錨點嘅語法 highlight。多文件 YAML(由三個連字號 --- 分隔嘅文件)會被偵測到,每個文件獨立格式化。工具甚至處理嵌入喺字串欄位嘅 YAML(例如 CloudFormation 範本),透過提取同格式化嵌入嘅 YAML。

2

格式化同 Validate

Click「格式化」用一致嘅 2 空格縮排、適當嘅引號(喺需要嗰陣幫模糊值加引號)同正規化嘅錨點/別名引用嚟美化 YAML。驗證器會自動執行同標記:tab 字元(確切行同欄)、唔一致嘅縮排、重複嘅映射 key 同埋可能因為 YAML 隱含類型強制而被錯誤解讀嘅值。每個錯誤都會連結到編輯器位置同提供修復建議。

3

Convert to JSON 或 Download

用「轉換做 JSON」按鈕由你嘅 YAML 產生等效 JSON — 啱晒某啲工具或 API 要求 JSON 輸入但你鍾意用 YAML 寫組態嗰陣。反向(「由 JSON 轉換」)都可以用。將格式化咗嘅 YAML 下載做 .yaml 檔案、複製去剪貼簿,或者將解析咗嘅資料結構以互動式樹狀檢視。

使用技巧與最佳實踐

check_circle

YAML 1.2(2009)解決咗最臭名昭著嘅 YAML 陷阱:喺 YAML 1.1 度,冇引號嘅 "yes"、"no"、"on"、"off"、"true" 同 "false" 會被解讀做布林值。國家代碼如 "NO"(挪威)同 "YES" 會變成布林值 false 同 true — 呢個 bug 普遍到俾人叫做「挪威問題」。YAML 1.2 只認 "true" 同 "false"(唔分大小寫)做布林值。我哋嘅格式化器偵測模糊值同建議幫佢哋加引號。

check_circle

YAML 縮排嘅黃金法則:每個巢狀層級用 2 個空格,永遠唔好用 tab。YAML 1.2 明確禁止用 tab 字元做縮排(tab 冇縮排值 — 佢哋喺解析器嘅欄位計數器度顯示做 0)。如果你由某啲將空格轉換做 tab 嘅來源(某啲聊天應用程式、網頁表單或者 PDF)複製 YAML,驗證器會標記每個 tab 同佢嘅確切位置。

check_circle

YAML 錨點(&)同別名(*)俾你定義一次值然後喺同一文件度多次引用佢。例如:`defaults: &defaults timeout: 30 retries: 3` 定義一個錨點,然後 `service_a: <<: *defaults` 將嗰啲預設值合併到 service_a 度。呢個喺 Docker Compose 度廣泛用嚟跨服務共享公共組態,同埋喺 Kubernetes 度用嚟減少大型 manifests 嘅重複。

check_circle

YAML 入面嘅多行字串有兩種風格:字面區塊純量(|),保留換行 — 用喺 shell scripts、SQL 查詢或者任何換行好重要嘅內容;同摺疊區塊純量(>),將換行摺疊做空格(好似 HTML 咁)— 用喺長段落、描述或者需要重新排文嘅文字。可以用 |-(拎走尾隨換行)或 |+(保留尾隨換行,包埋額外嗰啲)覆蓋預設嘅尾隨換行行為。

check_circle

YAML 對註解(# 註解)嘅支援係佢比起 JSON 喺組態檔案方面最大嘅優勢。註解俾你記錄點解揀某個值、連結去 Jira 飛仔、標記 TODO 同解釋唔明顯嘅設定 — 全部都唔會破壞解析器。JSON 同 JSON5 嘅變通方法(例如 "__comment": "explanation")係 hack;喺 YAML 度,註解係一等公民。

check_circle

YAML 合併鍵(<<)係一個特殊嘅映射鍵,將一個映射嘅鍵合併到另一個映射度。佢係 YAML 1.1 規範嘅一部分,廣泛支援但唔喺 YAML 1.2 核心度。Docker Compose 大量使用合併鍵配錨點嚟定義服務範本。不過,合併鍵喺巢狀映射度有已知嘅邊緣情況 — 要明確深層合併同淺層合併嘅期望。

check_circle

喺部署之前喺 CI/CD 度驗證 YAML 檔案。一個喺本機測試通過但喺 CI 失敗嘅格式錯誤 YAML 會浪費開發者時間。喺你嘅管線度加 YAML lint 步驟:`yamllint .` 或 `python -c "import yaml; yaml.safe_load(open('config.yaml'))"`。我哋嘅網上驗證器而家同 GitHub Actions 整合 — 喺你個 repo 度加個徽章顯示你 YAML 組態嘅驗證狀態。

check_circle

當除錯 Kubernetes pods 啟動失敗出神秘嘅「error converting YAML to JSON」嗰陣,問題差唔多永遠係你個 manifest 度嘅 YAML 格式錯誤。我哋嘅格式化器捉到縮排錯誤、重複 key(喺 YAML 度最後一個值沉默勝出 — 係設定被神秘忽略嘅常見原因)同埋放喺錯巢狀層級嘅欄位。格式化你個 manifest,然後用 kubectl 重新套用。

常見問題解答

YAML 1.2(2009 年發布)係現行規範,對 YAML 1.1 做咗兩個關鍵變更:(1) 佢將 YAML 同 JSON 對齊做子集 — 任何有效嘅 JSON 文件都係有效嘅 YAML 1.2 文件(喺 YAML 1.1 度,JSON 係子集但有一啲邊緣情況唔相容);(2) 佢移除咗模糊嘅布林值 — 喺 YAML 1.2 度,只有 "true" 同 "false"(唔分大小寫)係布林值,而 YAML 1.1 仲將 "yes"、"no"、"on"、"off" 當做布林值。大部分工具(Kubernetes、Ansible、Docker Compose)使用同 YAML 1.1 相容嘅解析器,有更廣泛嘅布林值集合。

YAML 嘅可讀性係有代價嘅 — 一個縮排錯誤就可以破壞成個部署。我哋嘅格式化器同驗證器即刻捉到呢啲錯誤,提供人類睇得明嘅錯誤訊息同確切行號。無論你係寫緊 Kubernetes manifests、Docker Compose files 定係 CI/CD pipelines,喺你個瀏覽器度免費格式化同驗證你嘅 YAML。

免費試用此工具 →open_in_new