XML ⇄ JSON 轉換器

關於此工具

可以在 XML 與 JSON 之間互相轉換。邏輯已調整為重視往返轉換(直接轉換再轉回)
同名的重複元素轉成陣列的預設值設為關閉,僅在有 2 個以上時才會陣列化。
當 JSON 根是陣列時,XML 會以 <root><item>…</item>…</root> 表示,並且在 XML→JSON 時會把這種結構還原成陣列。 所有處理都在瀏覽器內完成,資料不會傳送到外部。

XML ⇄ JSON 轉換

使用方式

  1. 在左側貼上 XML 或 JSON。
  2. 按下 XML → JSONJSON → XML
  3. 視需要調整縮排、屬性/文字的鍵、命名空間保留以及陣列處理。
  4. 使用 Validate 按鈕進行語法檢查。

範例

XML → JSON:

<user id="42">
  <name>Taro</name>
  <role>admin</role>
  <role>editor</role>
</user>
{
  "user": {
    "@id": "42",
    "name": "Taro",
    "role": ["admin", "editor"]
  }
}

補充

  • 屬性使用 [屬性前綴][屬性名稱] 表示(預設如 @id)。
  • 元素內文使用 [文字鍵](預設 #text)。
  • 同名元素預設維持單一值,只有在有 2 個以上時才會陣列化。
  • 當 JSON 根是陣列時,XML 會以 <root><item>…</item>…</root> 表示(項目名稱可調整)。
  • 空元素在沒有文字與屬性時會輸出為空物件 {}

注意事項(等價性的限制)

我們盡量讓「原始 JSON」→XML→「還原後的 JSON」可以得到相同檔案,但遇到以下情況時請理解仍有困難。

原始 JSON:


    "urls": [
             "admin.microsoft.com"
            ],
    "expressRoute": false,
    "id": 160,

還原後的 JSON:


    "urls": "admin.microsoft.com",
    "expressRoute": "false",
    "id": "160",

※由於 XML 與 JSON 對型別的處理不同,雖然可透過 XML 端的型別註解等方式規避,但要達成嚴格的等價性仍相當困難。