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
Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.
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。
大多數現代應用程式程式碼更適合使用 JSON。 JavaScript 原生解析 JSON,Python 的 json 模組位於標準函式庫中,幾乎所有其他語言都具有同等的一流 JSON 支援。 XML 處理需要匯入額外的程式庫並編寫更多的樣板檔案。在處理之前將傳入的 XML 轉換為 JSON 通常是從外部 XML 來源到內部資料結構的最快路徑。
工具也傾向於 JSON。 JSON 美化器、驗證器、模式驗證器、查詢語言(jq、JSONPath)和檢視器都很豐富; XML 等效項較少且通常較舊。使用 JSON 可以解鎖更豐富的工俱生態系統。
貼上 XML,取得 JSON。
DOMParser 產生的 XML DOM 與瀏覽器用於 XHTML 頁面的內容相同。轉換器遞歸地遍歷這個 DOM。它為每個元素創建一個 JSON 物件:屬性成為以 @ 為前綴的鍵(例如,@id、@class);該元素的子元素遞歸到相同的結構中;文字內容,當與孩子一起出現時,位於 #text 鍵下。
具有相同標籤名稱的重複子元素將收集到 JSON 陣列中。給定名稱的單一子代顯示為物件值;多個子項顯示為物件陣列。這種約定在實務上效果很好,但意味著 JSON 形狀取決於元素是出現一次還是多次——這是 XML 到 JSON 映射的已知缺陷。
命名空間保留為元素名稱的一部分(前綴:localName)。處理指令和CDATA部分轉換為文字內容。 XML 聲明和 DOCTYPE 將從 JSON 輸出中刪除,但不會影響資料。