開發者工具 / 01

XML 轉 JSON 轉換器

將 XML 文件轉成易讀的 JSON,並妥善處理屬性與重複元素。

XML 轉 JSON 轉換器: TOEA會讀取文件中的元素、屬性、文字與 CDATA,然後整理成 JSON:屬性會加上 @ 前綴,未包在子元素中的文字會成為 #text,同層重複的元素名稱則會成為陣列。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。

使用次數
在瀏覽器中
費用
免費・免註冊
可用狀態
可立即使用
XML → JSON 工作台本機處理

全程在瀏覽器中執行

↥
將XML貼到下方,或選擇檔案

最多5 MB・不會上傳

所有內容都會變成文字

XML 沒有資料型別,因此<count>42</count>會變成"42",<active>true</active>會變成"true"。請在讀取 JSON 的程式碼中轉換數字與布林值,因為此時你知道各欄位的用途。屬性也是如此:即使@id看起來像數字,其中仍會存放字串。

讀取結果的程式碼也必須處理只偶爾重複出現的元素。出現一次的<item>是物件,出現兩次則是陣列,因此迴圈處理前請使用Array.isArray(x) ? x : [x]進行正規化。

不適合轉換的文件

此轉換適合資料,例如設定、API 回應、資訊提供與匯出內容,但不適合文章。在<p>Read <b>this</b> first</p>中,分散的文字會合併成一個#text值,而粗體文字會變成獨立的鍵,因此會失去閱讀順序。XHTML、DocBook 及類似文件格式,較適合使用 XML 程式庫處理。若要在轉換前檢查文件結構,請使用XML 格式化工具縮排。

使用方式

  1. 貼上 XML 或選擇檔案。
  2. 選擇縮排寬度。
  3. 複製或下載 JSON。

隱私與限制

文字會在您的瀏覽器中轉換,絕不上傳;如果檔案是設定檔或您不希望交給陌生人的匯出資料,這點就很重要。命名空間會原樣保留在元素名稱中,不會進行解析。

相關工具

常見問題

為什麼屬性會以 @ 開頭?

XML會將屬性與子元素分開處理,而 JSON 沒有這種區分。@ 前綴能讓兩者保持分開,還原轉換時就不必猜測。

為什麼某個元素變成了陣列?

重複出現的同層元素名稱一定會變成陣列,因為這就是該結構代表的意思。只出現一次的名稱則會保留為一般值。

#text 是做什麼用的?

同時包含文字與子元素的元素,需要一個位置存放未包在子元素中的文字,而 #text 就是這個位置。

哪些內容不支援?

不支援 DTD 實體定義、命名空間解析,以及宣告以外的處理指令。設定檔和 API 資料內容不會使用這些功能。

免費工具・使用在瀏覽器中次・免註冊