JSON轉XML轉換器

將JSON資料轉換為XML。@attributes還原為元素屬性,#text還原為文本內容,陣列還原為同名的兄弟元素——是XML轉JSON工具的逆過程,全部在瀏覽器中完成。

使用提示

  • 在 `@attributes` 鍵中放入一個物件,該物件的每個屬性都會成為轉換後元素的屬性。
  • `#text` 鍵用於表示與屬性或子元素共存的元素的文本內容。不含屬性的簡單元素直接用字串作為值即可。
  • 給同一個鍵賦予陣列,陣列的每個元素都會作為同名的兄弟元素重複輸出。
  • 值為 `null` 時會生成不含屬性、文本、子元素的空自閉合標籤(``)。
  • 本工具假定輸入格式為姊妹工具"XML轉JSON轉換器"的輸出格式(以根元素名為鍵的物件,頂層僅有一個鍵)。

常見問題

名為 `@attributes` 的鍵中的物件,其每個屬性都會變成轉換後XML元素的屬性。例如 `{"@attributes": {"category": "fiction"}}` 會轉換為 `category="fiction"` 屬性。

給同一個鍵指定陣列時,陣列的每個元素都會作為同名的兄弟元素多次輸出。例如 `"book": [{"title": "A"}, {"title": "B"}]` 會轉換為包含兩個 `` 標籤的XML。

最常見的原因是JSON語法錯誤(缺少逗號、未加引號等)。另外XML必須只有一個根元素,因此頂層有多個鍵的JSON,或根為陣列的JSON也會導致錯誤。

可以,本站的"XML轉JSON轉換器"支援反方向轉換。由於兩者採用相同的轉換規則,雙向轉換內容都能保持一致。

本工具假定採用"XML轉JSON轉換器"的規則(`@attributes`、`#text`、陣列和null)。不遵循此規則的自由格式JSON(例如充滿數字和布林值的普通API響應)可能無法轉換為預期的XML結構。
ツールくん

閒話 ― 將JSON"還原"為XML時需要注意的地方

XML轉JSON的過程近似於"資訊壓縮"。XML可以同時容納屬性、文本、子元素三種資訊,而JSON只有簡單的鍵值對應關係,因此轉換時必須採用某種規則(本工具採用 `@attributes`/`#text`/陣列/null 這四條規則)。只要遵循該規則,將JSON"還原"為XML就是一個機械且唯一確定的過程;但如果強行將不遵循此規則的自由格式JSON轉換為XML,就可能分不清哪些應該是屬性、哪些應該是元素,導致結果與預期不符。

在實際工作中,有時需要先將舊版XML API的響應轉換為JSON以便在JavaScript中處理,處理完後再轉換回XML傳送給其他系統——例如將SOAP格式API的響應轉為JSON處理後,再作為SOAP格式的請求傳送回去。在這種往返轉換中,保持轉換規則的一致性至關重要,如果中途混入採用不同規則的工具,屬性與文本之間的對應關係就可能被打亂。

本工具嚴格要求"頂層只能有一個鍵",這反映了XML規範本身的要求(文件必須只有一個根元素)。如果需要轉換含有多個頂層鍵的JSON,可以先用一個公共父鍵(例如 `root`)將其包裹起來再輸入本工具,即可輸出為具有單一根元素的XML。