免費轉換器

XML to JSON Converter

Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.

Select XML file

or drag and drop here

關於此工具

XML 和 JSON 都是資料交換格式,但來自不同的網路時代。 XML 於 1998 年標準化,被設計為具有屬性、名稱空間和模式驗證的自描述標記格式。 JSON 出現在 2000 年代初期,是一種更適合 JavaScript 執行時間和現代 API 的輕量級格式。大多數新的 Web API 都使用 JSON;許多舊系統(SOAP 服務、RSS 提要、設定檔、企業整合)仍然會產生 XML。它們之間的轉換是現代開發中最常見的互通任務之一。

這種轉換並不是完全無損的,因為兩種格式有不同的表達能力。 XML 具有屬性(JSON 本身沒有屬性),區分文字內容和元素名稱,並支援混合內容(同時包含文字和子元素的元素)。 JSON 簡單的物件/陣列模型無法直接表示這些功能,因此轉換器應用約定:屬性成為 @ 前綴的鍵,文字內容成為 #text 鍵,等等。

此轉換器使用瀏覽器內建的 DOMParser 解析 XML,並遍歷產生的 DOM 樹以產生 JSON。與兄弟元素具有相同標籤名稱的元素被收集到數組中;屬性進入特殊鍵;命名空間和處理指令如果存在則被保留。結果是人類可讀的 JSON,可以合理地往回傳 XML。

為什麼將 XML 轉換為 JSON

大多數現代應用程式程式碼更適合使用 JSON。 JavaScript 原生解析 JSON,Python 的 json 模組位於標準函式庫中,幾乎所有其他語言都具有同等的一流 JSON 支援。 XML 處理需要匯入額外的程式庫並編寫更多的樣板檔案。在處理之前將傳入的 XML 轉換為 JSON 通常是從外部 XML 來源到內部資料結構的最快路徑。

工具也傾向於 JSON。 JSON 美化器、驗證器、模式驗證器、查詢語言(jq、JSONPath)和檢視器都很豐富; XML 等效項較少且通常較舊。使用 JSON 可以解鎖更豐富的工俱生態系統。

使用方法

貼上 XML,取得 JSON。

  1. 貼上或上傳您的 XML: 將 XML 文字貼到輸入區域或放置檔案。 XML 必須格式良好;格式錯誤的 XML 會產生解析錯誤,而不是猜測錯誤。
  2. 轉換: DOMParser 建構 DOM,轉換器遍歷每個元素,並在需要時使用屬性鍵 (@attr) 和文字內容鍵 (#text) 產生 JSON。同名的同級元素成為數組。
  3. 審查結構: 檢查 JSON 以確認屬性、文字和巢狀已按預期對應。使用的約定(例如,@ 表示屬性)在輸出中可見。
  4. 下載或複製: 另存為 .json 或複製到剪貼簿。

常見用例

技術細節

DOMParser 產生的 XML DOM 與瀏覽器用於 XHTML 頁面的內容相同。轉換器遞歸地遍歷這個 DOM。它為每個元素創建一個 JSON 物件:屬性成為以 @ 為前綴的鍵(例如,@id、@class);該元素的子元素遞歸到相同的結構中;文字內容,當與孩子一起出現時,位於 #text 鍵下。

具有相同標籤名稱的重複子元素將收集到 JSON 陣列中。給定名稱的單一子代顯示為物件值;多個子項顯示為物件陣列。這種約定在實務上效果很好,但意味著 JSON 形狀取決於元素是出現一次還是多次——這是 XML 到 JSON 映射的已知缺陷。

命名空間保留為元素名稱的一部分(前綴:localName)。處理指令和CDATA部分轉換為文字內容。 XML 聲明和 DOCTYPE 將從 JSON 輸出中刪除,但不會影響資料。

最佳實踐

常見問題

將 XML 轉換為 JSON 會改變內容嗎?
盡可能準確地保留內容。但是,某些特定於格式的功能可能沒有直接等效項,因此可能會出現細微的格式差異。
為什麼要將資料轉換為 JSON 格式?
JSON 是 Web API 和 JavaScript 應用程式的標準資料格式。它是人類可讀的,受到程式語言的廣泛支持,並且具有比 XML 更簡單的語法。
轉換器是否處理巢狀或複雜的 XML 結構?
是的。該工具可以正確解析巢狀物件、陣列和所有標準 XML 資料類型,從而在 JSON 輸出中保留完整的資料結構。
此轉換安全且私密嗎?
是的。所有處理都在您的瀏覽器本地進行。您的資料永遠不會離開您的裝置 - 沒有伺服器上傳,沒有雲端處理,沒有資料收集。
是否處理 CDATA 部分?
是的。 CDATA 內容在 JSON 輸出中轉換為純文字。 CDATA 包裝本身不會保留,但內容會保留。
我的數據是否上傳到伺服器?
不會。 DOMParser 在您的瀏覽器中運行;轉換完全發生在您的裝置上。
JSON 會往返回傳 XML 嗎?
是的,如果您使用相反的約定(JSON 到 XML 工具遵循相同的 @attr 和 #text 規則)。往返保留了典型 XML 的結構;一些邊緣情況(混合內容訂單、處理指令)可能無法完美生存。
最大輸入尺寸是多少?
最大 50 MB。 DOMParser 受瀏覽器記憶體限制;非常大的 XML 檔案可能會減慢速度或無法解析。