Kubernetes manifests round-trip
kubectl get deployment my-app -o json → 貼進來 → YAML → 編輯 → 套用。或者:把 vendor 文件中的 YAML manifest 貼進來、轉 JSON、跑 jq 過濾、再轉回 YAML、commit。
為 k8s、GitHub Actions、Docker Compose、helm 而生的雙向轉換。即時預覽、idiomatic YAML 輸出,全部在瀏覽器內運算。
js-yaml 很棒,但每次頁面載入會多 ~30 KB(minified)。實戰配置檔的 YAML 只用到規範的一小部分 — block mappings、block sequences、flow style、scalar 型別、多行 literal。我們手刻了正好這個子集(~5 KB),讓冷啟動保持快速。如果你的 YAML 用到 anchors、aliases 或 custom tags,改用 js-yaml 的 CI pipeline。
三個在配置檔中很罕見的功能:(1)anchors 與 aliases(&name / *name) — 用於文件內去重;(2)custom tags(!!str / !!float / !!omap) — 用於覆蓋隱式型別推論;(3)多文件檔用 --- 分隔。這些都不會出現在標準 k8s、GitHub Actions、Docker Compose、helm 或 ansible 檔案。如果你需要它們,改用完整 YAML parser。
k8s、GitHub Actions、Docker Compose、helm、ansible — 加上幾個讓你真正用得開心的小細節。
貼任一格式立即得到另一個。每次按鍵後即時更新 — 不需要按 Convert 按鈕。一鍵切換方向,同一個工具反方向跑。
Block 與 flow mappings/sequences、scalar(string、number、boolean、null)、多行 literal(|)與 folded(>)block scalar。涵蓋 99% 的 k8s manifests、GitHub Actions、Docker Compose、GitLab CI、helm values、ansible playbook。
JSON → YAML 輸出你會手寫的 YAML:plain-style key(不加引號)、字串只有在會與保留字(true/false/null/yes/no)或數字混淆時才加引號、多行字串用 | block scalar、可選 2 或 4 空格縮排。
JSON → YAML → JSON 產出位元組相同的文件。任一方向轉換,反向都能乾淨還原。沒有靜默遺失型別或被自動轉型。
你的配置永遠不會離開裝置。手刻 parser + serializer 全部以 JavaScript 在本地執行。打開 DevTools → Network 即可驗證沒有任何對外請求。
純 JavaScript,沒有 js-yaml 依賴。冷啟動 gzip 後不到 25 KB。一般筆電上,100 KB 的 k8s manifest 30 毫秒內完成轉換。
從原始配置到你需要的格式,三個步驟。
把配置丟到 Input 面板。從 Direction 下拉選單選擇格式 — 需要時切換方向。每次按鍵後即時轉換。
預設縮排 2 空格(k8s / GitHub Actions 慣例)。團隊用 4 就切換。按 Swap 把輸出搬回輸入 — 適合 round-trip 驗證(貼 JSON、轉成 YAML、Swap、再轉回來、跟原文比對)。
按複製圖示把結果丟到剪貼簿,或按下載圖示存成 output.yaml 或 output.json。底部顯示位元組差異,讓你看到 YAML 表示有多精簡。
四種常見場景 — 在這些情況下,瀏覽器內隱私優先工具比寫一個 one-off Python 腳本快太多。
kubectl get deployment my-app -o json → 貼進來 → YAML → 編輯 → 套用。或者:把 vendor 文件中的 YAML manifest 貼進來、轉 JSON、跑 jq 過濾、再轉回 YAML、commit。
部落格用 JSON 顯示 CI snippet。貼進來、得到 YAML、貼到 .github/workflows/ci.yml。或者:多 job 的 YAML workflow 轉成 JSON 做程式化編輯,再轉回 YAML。
Helm values 檔是 YAML;某些 templating 工具要 JSON。貼你的 values.yaml、得到 JSON、跑你的工具、貼回來、轉回 YAML 提交。Docker Compose 的 compose.yaml 同樣的流程。
含 API key、機密、內部 hostname、客戶資料的配置 — 任何不能貼到雲端 converter 的東西。瀏覽器內工具讓每個位元組都留在你的筆電上。打開 DevTools → Network 驗證沒有東西外洩。
你的配置永遠不會離開裝置。打開 DevTools → Network,轉換過程中沒有任何對外請求。
JSON.parse、剪貼簿 / 下載全部以 JavaScript 在你的機器上執行 — 沒有 js-yaml CDN、沒有第三方 API。
為 YAML 配置模式、JSON 工具、DevOps 檔案格式精選的實用文章。
Quoted commas, embedded newlines, BOM headers, doubled quotes — the cases where a regex split breaks down and you need a real parser.
When CSV's row-orientation beats JSON's structure — and when nested objects make CSV a dead end. Worked examples, with conversion patterns for both directions.
js-yaml 很棒,但每次頁面載入會多 ~30 KB(minified)。實戰配置檔的 YAML 只用到規範的一小部分 — block mappings、block sequences、flow style、scalar 型別、多行 literal。我們手刻了正好這個子集(~5 KB),讓冷啟動保持快速。如果你的 YAML 用到 anchors、aliases 或 custom tags,改用 js-yaml 的 CI pipeline。
三個在配置檔中很罕見的功能:(1)anchors 與 aliases(&name / *name) — 用於文件內去重;(2)custom tags(!!str / !!float / !!omap) — 用於覆蓋隱式型別推論;(3)多文件檔用 --- 分隔。這些都不會出現在標準 k8s、GitHub Actions、Docker Compose、helm 或 ansible 檔案。如果你需要它們,改用完整 YAML parser。
不會 — 註解在解析時被去除。YAML 支援註解(#...),但 JSON 不支援。把 YAML 透過 JSON round-trip 一定會遺失註解資訊。我們選擇在解析時直接去除,而不是用 hack 嘗試保留。如果你需要保留註解的 YAML 編輯,直接編輯 YAML。
YAML 的隱式型別規則比 JSON 寬鬆:1.2.3 在 YAML 是字串(因為有兩個點,不是數字),版本號像 v1.2 不加引號也是字串。我們遵循 YAML 1.2 隱式型別規則:只有符合 ^-?\d+(\.\d+)?([eE][-+]?\d+)?$ 的數字會變成 number;其他保持字串。如果你需要精確的數字處理,在 YAML 加引號或直接用 JSON。
不會。YAML parser、serializer、JSON parser、剪貼簿複製全部以 JavaScript 在你的裝置上執行。打開 DevTools → Network 即可驗證轉換過程沒有任何對外請求。貼 production k8s manifests、內部 CI 配置、含密的 helm values 進來都安全 — 沒有任何位元組離開你的筆電。