↔️
免費YAML 與 JSON 互轉工具
雙向轉換 YAML 和 JSON。貼上任意格式,即刻獲得轉換結果——無需伺服器上傳。
載入後可離線使用
JSON 輸出
輸出將顯示在此處…工作原理
雙向轉換——YAML 轉 JSON 和 JSON 轉 YAML——都完全在你的瀏覽器中使用內建於頁面的手寫解析器和產生器執行,沒有第三方 YAML 庫,也不涉及伺服器。邏輯位於單個 TypeScript 模組(lib/yamljson.ts)中,處理對映、序列、標量、引號字串和行內註解去除。
- 1逐行預處理輸入對於 YAML 輸入,解析器將文字拆分為行,去除行內註解(追蹤引號狀態以免去除字串中的 #),測量縮排深度並丟棄空行——在解析開始之前建立一個結構化的記號列表。
- 2遞迴下降解析器建立資料樹解析器遍歷記號列表,用縮排等級確定結構。它識別序列項(- value)、對映鍵(key: value)和巢狀塊。標量經過型別轉換步驟,處理 null、布林值、整數(拒絕 007 這類帶前導零的值,以免悄悄損壞資料)和浮點數——還有一個可選模式,將 yes、no、on 和 off 等 YAML 1.1 裸詞保留為字串,而不是轉換為布林值。
- 3不支援的 YAML 特性會被標出,而不是悄悄丟棄輸出之前,工具會掃描錨點(&name)、別名(*name)、合併鍵(<<:)、塊標量(| 和 >)、多文件標記(---)以及重複的對映鍵。任何一項都會觸發醒目的警告,而不是產生細微錯誤的 JSON。
- 4序列化 JSON 或產生 YAML,然後提供輸出對於 YAML→JSON,解析後的值按你選擇的縮排(2 個空格、4 個空格、製表符或壓縮)傳給 JSON.stringify。對於 JSON→YAML,自定義產生器遍歷解析後的 JavaScript 值並產生縮排的 YAML,只在必要時給字串標量加引號(例如包含 :、# 或看起來像保留字的值)。輸出在你輸入時即時顯示,可複製或下載。