YAML 解析器

解析、驗證 YAML 並將其轉換為 JSON(或反向轉換)。所有處理均在您的瀏覽器中完成,確保最高安全性與隱私。

YAML 轉 JSON JSON 轉 YAML 驗證與檢視
鍵數
0
深度
0
大小
0 B

如何使用 YAML 解析器

1

選擇模式

選擇「YAML 轉 JSON」或「JSON 轉 YAML」轉換模式

2

貼上內容

將您的 YAML 或 JSON 內容貼上到輸入欄位

3

轉換與檢視

點擊「驗證」檢查語法,或即時檢視轉換後的輸出

什麼是 YAML?

YAML(YAML 不是標記語言)是一種人類可讀的資料序列化標準,可與所有程式語言搭配使用,常用於設定檔。

主要特性

人類可讀

設計為人類可以輕鬆閱讀與撰寫,且額外負擔極低

廣泛使用

常用於 Docker、Kubernetes、CI/CD 等的設定檔

資料類型

支援字串、數字、布林值、列表、映射與多行內容

常見問題

本工具支援哪個 YAML 規範?

本工具透過 js-yaml 函式庫支援 YAML 1.2 規範,涵蓋了目前使用中的絕大多數 YAML 文件,包括 Kubernetes 設定、Docker Compose 檔案與 CI/CD 管線。

可以將 JSON 轉回 YAML 嗎?

是的。只需使用切換按鈕切換到「JSON 轉 YAML」模式,貼上您的 JSON 內容,工具就會將其轉換為具有適當縮排的 YAML 格式。

使用此解析器時我的資料安全嗎?

絕對安全。所有解析與轉換完全在您的瀏覽器中使用客戶端 JavaScript 完成。您的 YAML 與 JSON 資料不會被傳送到任何伺服器。

YAML 和 JSON 有什麼關係?

YAML 1.2 在設計上就是 JSON 的嚴格超集——每份合法的 JSON 文件同時也是合法的 YAML,而 JSON 更是 YAML 官方建議的互通子集。YAML 在此之上加入了註解、錨點、區塊純量與型別轉換。這層關係讓 YAML 與 JSON 之間的轉換可以無損進行,這正是本工具所執行的轉換。

什麼是 YAML 的錨點、別名與合併鍵?

&anchor 為節點命名,*alias 重複使用它,<<: 則把某個 mapping 合併進當前的 mapping。常見模式:先定義 defaults: &d 內含 retries 與 timeout,再寫 prod: { <<: *d, retries: 10 },即可繼承 timeout 同時覆寫 retries。這種去重機制源自 YAML 1.1,如今幾乎所有工具鏈都仍支援。

什麼是 YAML 的「挪威問題」(Norway problem)?

YAML 1.1 會把裸字串 NO 強制轉成布林值 false——no、on、off、yes、y、n 也一樣。於是國家代碼列表 [NO, SE, DK] 會悄悄變成 [false, SE, DK]。YAML 1.2 收緊了這個行為(只有 true 與 false 是布林值),但許多解析器仍保留 1.1 的做法,因此解法是加上引號:"NO"。本解析器會明確顯示每個純量實際被解析成的型別與值。

哪些工具與格式使用 YAML?

YAML 廣泛用於維運與 CI 設定:Kubernetes manifests、Docker Compose、GitHub Actions、GitLab CI、Ansible playbooks 與 OpenAPI 文件全都是 YAML。副檔名 .yml 與 .yaml 可以互換,其中 .yaml 是規範中的標準寫法。

YAML 的多行字串是怎麼運作的?

使用 | 表示 literal block(換行原樣保留,適合放程式碼),使用 > 表示 folded block(換行摺疊為空格,段落合併)。兩者預設都只保留一個結尾換行;chomping 指示符可調整此行為:|- 刪除所有結尾換行,+ 則全部保留。鍵值下方的縮排深度即定義區塊的邊界。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}