JSON 轉 XML 轉換器

即時將 JSON 轉換為 XML

JSON 輸入

選項

XML 輸出

轉換結果將會顯示在這裡...

概覽

JSON 轉 XML 轉換器可將 JSON 物件或陣列轉換成格式正確、有縮排的 XML——當舊版 SOAP 服務、企業整合,或僅支援 XML 的設定格式是你的 JSON 資料與目的地之間唯一的阻礙時,這非常實用。它使用真正的建構器而非字串拼接來產生 XML,因此巢狀結構、屬性與格式都能正確輸出。

此轉換器可偵測與處理的內容
  • 屬性對應:帶有 @_ 前綴的 JSON 鍵,例如 "@_id": "42",會成為所在元素的 XML 屬性,而非子元素
  • 由陣列產生的重複元素:JSON 陣列的值會變成一系列共用相同標籤名稱(即該鍵名)的同層級 XML 元素
  • 可設定的縮排:選擇 2、4 或 8 個空格,或完全關閉格式化以產生精簡的單行 XML
  • 空節點抑制:可選擇將空元素摺疊為自我封閉標籤,而非寫出空的起訖標籤對
  • 忽略屬性模式:將每個鍵(包括帶 @ 前綴的鍵)都當作一般子元素而非屬性處理,適用於你只想要純元素文件的情況
  • 完全在瀏覽器中執行:你的 JSON 資料絕不會上傳到伺服器
何時需要將 JSON 轉換為 XML
  • 將資料傳送給只接受 XML 請求的舊版 SOAP 網頁服務或企業系統
  • 從你已經維護的 JSON 產生用於建置工具、CI 系統或 .NET/Java 應用程式的 XML 設定檔
  • 從文章或項目的 JSON 陣列產生 RSS/Atom 格式的 XML 訂閱源以供發布
  • 對已經從 XML 轉換過來的資料進行往返處理——以 JSON 形式編輯,然後轉換回期望原始格式的系統所需的 XML
  • 從手邊已有的 JSON 負載產生用於 API 合約測試的 XML 測試夾具
如何將 JSON 轉換為 XML
  1. 1.將包裹在單一根鍵中的 JSON 物件貼到輸入編輯器,或上傳 .json 檔案
  2. 2.決定帶 @ 前綴的鍵是否應對應為 XML 屬性,或開啟「忽略屬性」讓所有內容都以元素形式輸出
  3. 3.選擇縮排寬度,或關閉格式化以取得精簡的輸出
  4. 4.若你希望空值使用自我封閉標籤,請啟用空節點抑制
  5. 5.點擊「轉換」,然後複製 XML 輸出或下載為 .xml 檔案
需要了解的邊界情況
  • XML 要求只能有一個根元素——若 JSON 負載本身是一個裸陣列,或是一個含有多個頂層鍵的物件,就會在根部產生多個同層級元素,這不是合法的 XML;請先將資料包裹在一個根鍵中,例如 { "root": { ... } }
  • 沒有直接 XML 對應形式的 JSON 值,例如 null 或混合了物件與基本型別的陣列,會被字串化,這可能與手寫的 XML 文件看起來不同
  • 不是合法 XML 標籤名稱的鍵名——以數字開頭,或包含空格、&、<、> 等字元——會產生無效的 XML,下游剖析器可能會拒絕它
  • 布林值和數字會以其字面文字形式寫出,例如 true 或 42,不附帶任何 XML Schema 型別註解——接收方系統必須已經知道每個元素代表的型別
限制
  • 此工具不會產生或驗證 XSD schema——輸出的是格式良好的 XML,而非保證符合特定系統 schema 的 XML
  • 沒有內建方式在輸出中宣告 XML 命名空間(xmlns)——帶命名空間的標籤名稱必須已經作為帶前綴的鍵存在於你的 JSON 中,例如 "env:Envelope"
  • 非常大的 JSON 陣列在建構階段可能超出瀏覽器記憶體——對於非常大的匯出資料,請使用以腳本為基礎的工具,例如直接基於 fast-xml-parser 建構的 Node.js 工作
需要反向轉換嗎?

如果你從 XML 出發——SOAP 回應、RSS 訂閱源,或舊版設定檔——需要用於 JavaScript 或 Node.js 程式碼庫的 JSON,請改用 XML 轉 JSON 轉換器。它會驗證 XML、回報帶行號的剖析錯誤,並讓你控制屬性與命名空間如何對應到 JSON 中。