DevToolPal
繁

XML 轉 JSON

在瀏覽器中把 XML 轉成 JSON,保留屬性、文字和重複元素,出錯時指出確切位置。

本機處理,不會上傳

選項

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

功能介紹

這個工具能把 XML 文件轉成 JSON。元素變成物件的鍵,屬性變成帶前綴的鍵,元素內的文字變成它的值,重複的同層元素則變成陣列。轉換前會先驗證 XML:如果有標籤沒有閉合或屬性格式錯誤,你會看到確切的行號和欄號。

使用方式

  1. 把 XML 貼到 輸入 框、上傳或拖曳 .xml 檔案進來,或按 範例。
  2. JSON 會隨著輸入即時顯示在右側。
  3. 調整選項:
    • 縮排:2 或 4 個空格、Tab,或壓縮輸出。
    • 屬性前綴:屬性的標記,預設是 @。留空則忽略屬性。
    • 轉換數字和布林值:把 42 和 true 這類文字轉成真正的 JSON 數字和布林值。
    • 子元素一律用陣列:把每個子元素都包進陣列,讓結構可預期。
  4. 複製結果,或下載成 .json 檔案。

範例

<book id="bk101">
  <title lang="en">XML Developer's Guide</title>
  <tag>xml</tag>
  <tag>programming</tag>
</book>

會變成

{
  "book": {
    "title": { "#text": "XML Developer's Guide", "@lang": "en" },
    "tag": ["xml", "programming"],
    "@id": "bk101"
  }
}

注意事項

XML 宣告(<?xml ...?>)和處理指令不會出現在 JSON 中。註解會被忽略。文字前後的空白會被去除。

常見問題

› XML 屬性在 JSON 中如何表示?

以屬性前綴開頭的鍵表示,預設前綴是 "@"。例如 <price currency="USD">44.95</price> 會變成 { "@currency": "USD", "#text": "44.95" }。清空前綴欄位則會完全略過屬性。

› 為什麼同一個元素有時是陣列、有時是物件?

重複的元素會變成陣列,單一元素則保持為一般的值。如果你的程式碼每次都需要相同的結構,請開啟「子元素一律用陣列」。

› 數字會被轉換嗎?

預設不會,因為郵遞區號或開頭為 0 的 ID 這類值會因此改變。開啟「轉換數字和布林值」,就會得到 42 而不是 "42"、true 而不是 "true"。

› 我的 XML 會被上傳嗎?

不會。剖析在你的瀏覽器中進行。