跳到正文
馬克工具箱

XML 轉 JSON

把 XML 文件、訂閱源或介面返回轉換成 JavaScript 和現代介面能直接使用的 JSON。屬性和文字都會保留,轉出的 JSON 還能再轉回同樣的 XML。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

XML → JSON
輸出 (JSON)

使用步驟

  1. 貼上 XML 或載入示例。
  2. 選擇是否轉換數字和布林值。
  3. 複製或下載 JSON。

引數說明

屬性
屬性 id="bk101" 會變成鍵 "@id";與屬性並存的文字放在 "#text" 中。
重複元素
同一父元素下出現多次的元素會變成 JSON 陣列,只出現一次則保持物件。
轉換數字和布林值
開啟後 44.95 變成數字、true 變成布林值。關閉則所有值保持文字,00123 這樣的編號不會丟掉前導零。

示例

這段 XML,包含宣告和註釋:

<?xml version="1.0"?>
<!-- c -->
<catalog>
  <book id="bk101" in_stock="true">
    <title>XML Guide</title>
    <price currency="USD">44.95</price>
    <tag>a</tag><tag>b</tag>
    <isbn>00123</isbn>
  </book>
</catalog>

在開啟「轉換數字和布林值」時會變成這樣的 JSON:

{
  "catalog": {
    "book": {
      "title": "XML Guide",
      "price": {
        "#text": 44.95,
        "@currency": "USD"
      },
      "tag": [
        "a",
        "b"
      ],
      "isbn": 123,
      "@id": "bk101",
      "@in_stock": true
    }
  }
}

屬性排在子元素之後。宣告和註釋都不見了,tag 因為出現了兩次而變成陣列。關閉該選項時,44.95 保持為 “44.95”,isbn 保持為 “00123”,屬性則變成文字 “true”。這個選項對屬性值和元素文字都有效。

常見問題

註釋和 XML 宣告會怎樣?

會被捨棄,JSON 中沒有對應的位置。元素和屬性的資料都會保留。

為什麼列表有時是物件而不是陣列?

XML 本身沒有說明某個元素能否重複。只出現一次時無法判斷它是列表,所以轉成物件。

XML 格式有錯怎麼辦?

會提示第一個錯誤及其行號,例如結束標籤不匹配。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具