跳至內容

JSON 轉 YAML

將 JSON 轉成 YAML,也支援 YAML 轉回 JSON。

即時
輸入

這個工具的用途

將 JSON 與 YAML 互相轉換,全在你的瀏覽器內完成。轉換可完全來回(型別與結構皆保留),因此可貼上 YAML 設定取得嚴格、可直接複製的 JSON,或把 JSON 載荷美化成在 pull request 差異中讓人類易讀的形式。

使用步驟

貼上 JSON(或載入範例),選擇縮排(2 或 4 個空白),即可在右側讀到 YAML。切換 YAML → JSON instead 可反向轉換。

輸入: {"service":"devsmiths","version":2,"endpoints":[{"path":"/json/formatter","method":"GET"},{"path":"/json/repair","method":"POST"}],"public":true}

輸出(YAML):

service: devsmiths
version: 2
endpoints:
  - path: /json/formatter
    method: GET
  - path: /json/repair
    method: POST
public: true

限制與邊界情況

  • YAML 轉換可來回,但 YAML 支援 JSON 沒有的概念(anchors、references、tags)。YAML → JSON 時會展開 anchors 並捨棄 tags。
  • 若輸入為無效 JSON,請先用 JSON Repair;轉換器僅接受嚴格的 RFC 8259 JSON。
  • 絕對值超過 ±2^53 的數字在任何基於 JavaScript 的解析器都會失去精度——雙向皆然。
  • 延伸閱讀:JSON vs YAML vs XML, 說明各種格式適用情境。

常見問題

我的資料會被傳送到伺服器嗎?
不會。每一次轉換都在你的瀏覽器內完成,頁面不會上傳 JSON 或輸出結果。
可以反向 YAML → JSON 嗎?
可以——開啟 /json/convert/yaml,切換「YAML → JSON instead」即可。CSV 與 XML 目前為單向(JSON → CSV / JSON → XML);架構支援反向模式,已在 roadmap 上。
巢狀物件在 CSV 中怎麼處理?
預設以點號攤平鍵(例如 user.address.city)。可切換為方括號(user[address][city]),或「stringify」把巢狀值保留為 JSON 編碼的單一儲存格。陣列會被 JSON-序列化成單一儲存格——CSV 的行列模型無法忠實表達任意巢狀。
XML 輸出有遵循特定 schema 嗎?
沒有——它是直接、慣用的對應:每個物件鍵對應一個元素、陣列重複父元素、原始值成為被逸出的文字內容。沒有屬性/元素的啟發式——一律使用元素。若需要屬性風格 XML,相關選項在 roadmap 上。
為什麼 CSV 匯出器對我的輸入有意見?
CSV 需要一個陣列(或單一物件)。根層級為純字串、數字或布林沒有行列結構。請把它包成物件陣列,或改用能處理任意 JSON 的 YAML / XML 變體。
可以處理 TSV、MessagePack 或 TOML 嗎?
還不行。分派層支援新的目標——已在 roadmap 上。若你有使用案例歡迎開立 issue。