YAML 轉 JSON:保留你想要的換行
管線符號、大於符號和減號會產生不同的字串。五個小範例說明原因。
YAML 段落在你編輯器裡看起來是兩行,但在 JSON 裡可能變成一行。鍵後面那個字元決定了換行要怎麼被解讀;減號則決定最後一個換行要不要保留。
開啟 CSV、JSON 與 YAML 轉換器,貼上這個範例,在 從 選擇 YAML,在 至 選擇 JSON:
literal: |
Ready to share.
Check the link.
folded: >
Ready to share.
Check the link.
literal_strip: |-
Ready to share.
Check the link.
folded_strip: >-
Ready to share.
Check the link.
先看輸出,再改文字
轉換器會產生這四個字串:
{
"literal": "Ready to share.\nCheck the link.\n",
"folded": "Ready to share. Check the link.\n",
"literal_strip": "Ready to share.\nCheck the link.",
"folded_strip": "Ready to share. Check the link."
}
在 JSON 原始碼中,\n 代表字串內的換行。它不是多餘的反斜線,解析 JSON 後讀者不會看到它。引號外的縮排只是讓 JSON 比較好讀,不會改變字串內容。
如果要寫兩行的說明文字,第三個版本通常比較實用。如果是一句話在設定檔裡被折成兩行,第四個版本可以把它們合在一起,而且結尾沒有換行。
分開選擇區塊樣式和結尾方式
| YAML 標記 | 一般文字行之間 | 這個範例的結尾 |
|---|---|---|
| |
保留換行 | 保留一個結尾換行 |
> |
折疊成空格 | 保留一個結尾換行 |
|- |
保留換行 | 移除結尾換行 |
>- |
折疊成空格 | 移除結尾換行 |
這些規則描述的是像這個範例的非空區塊。YAML 把結尾規則稱為「chomping」;區塊純量規格 也定義了加號用來保留結尾的空行。
折疊不會消除所有換行。空行和縮排更多的行有各自的規則。在轉換訊息、提示詞或 shell 指令之前,先用小範例測試,因為這些內容的空格很重要。
空行仍然分隔段落
這個範例使用折疊文字,但包含一個空行:
paragraphs: >-
First paragraph.
Second paragraph.
轉換後的值是:
{
"paragraphs": "First paragraph.\nSecond paragraph."
}
兩個段落之間有一個換行,不是空格,也不是兩個換行。如果你需要精確的空行,請使用字面區塊,並檢查產生的字串。
區塊內容要用空格縮排在鍵的下方。把某一行往左移可能會結束區塊,或讓文件變成無效。文件壞掉時應該修正來源,而不是靠移除所有空白來「修好」。
如果註解重要,保留 YAML
下載 完整 YAML 範例 和它的 轉換後 JSON。範例包含上述五種情況。
轉換保留的是解讀後的值,不是 YAML 原本的呈現方式。註解、區塊樣式標記和別名記號不會保留在 JSON 中。如果你之後還要編輯設定,請保留原始 YAML;轉換回來不會還原那些細節。
2026 年 10 月 12 日,我們把可下載的檔案透過工具的轉換功能處理,並檢查了每個字串,包括結尾換行。結果檔案 記錄了預期值和下載雜湊。工具是在你的瀏覽器本地轉換,但與他人分享設定時,還是應該使用清理過的範例。