UltKit

JSON 轉 XML 轉換器

把 JSON 資料交給只認得 XML 的軟體。每筆記錄會變成一個元素,每個鍵變成子標籤,整份文件則放在單一根元素之下,根元素名稱由您決定。

資料轉換器

或將CSV, TSV, TXT … 檔案拖曳到這裡 ·

每個檔案最大 95 MB· 最多 20 個檔案· 30 分鐘後刪除

輸出

檔案會在我們的伺服器上處理,並於 30 分鐘後刪除。

使用方式

  1. 1

    上傳 JSON

    加入 .json 檔案(例如 API 回應)或 JSON Lines 檔案。最多 20 個檔案,每個最大 95 MB。

  2. 2

    命名根元素

    在進階設定下的 XML 根標籤輸入最外層標籤(預設為 rows),並保持開啟格式化排版,輸出就會有縮排。

  3. 3

    轉換並對應欄位

    按下轉換為 XML 後下載。若接收端系統的結構描述要求不同的名稱,請自行修改標籤名稱。

多數 API 都改用 JSON 了,為什麼還要把 JSON 轉成 XML

JSON 成為網路 API 的主流;其現行規範為 2017 年的 RFC 8259,只有短短幾頁。XML 則更早,自 1998 年 2 月起就是 W3C 建議標準,並且一直留在契約規定嚴格的領域:銀行、電子發票、出版與政府申報。

因此這種轉換的方向通常取決於金流或法規。開發人員從 JSON API 取得訂單,卻得把它們送到合作夥伴的 SOAP 服務;商店用 JSON 管理商品,但比價網站要求 XML 饋送;團隊把翻譯存成 JSON,而 Android 專案需要 strings.xml。如果目的地是試算表,JSON 轉 CSV 會輸出列而不是元素。

仍需要 XML 輸入的系統

JSON 轉 XML 轉換器的使用場合
機構規定來源
SOAP 網路服務每個請求都以 XML 封包傳送;SOAP 1.2 於 2003 年成為 W3C 建議標準—
Google Merchant Center商品資料饋送除了分隔文字外,也接受 RSS 2.0 或 Atom 1.0 的 XML—
Peppol 電子發票發票依 Peppol BIS Billing 3.0 規則,以 UBL 2.1 XML 文件交換—
Android 應用程式文字資源與翻譯存放在 res/values/strings.xml—

JSON 轉 XML 範例:兩項產品

由 [{"sku":"A-17","price":12.5,"tags":["新品","特價"]}, {"sku":"B-02","price":8}] 產生的 XML
<?xml version="1.0" encoding="UTF-8"?>
<rows>
  <row>
    <sku>A-17</sku>
    <price>12.5</price>
    <tags>新品</tags>
    <tags>特價</tags>
  </row>
  <row>
    <sku>B-02</sku>
    <price>8</price>
  </row>
</rows>

迷思JSON 與 XML 一對一對應,所以轉換是完全精確的。

事實XML 有 JSON 沒有的屬性、混合內容與命名空間,而 JSON 也有 XML 沒有的資料型別。轉換器必須選擇一種對應方式;這裡一律使用子元素。

迷思數字 12.5 在 XML 中仍然是數字。

事實XML 儲存的是字元。12.5 在結構描述或讀取程式指明它是小數之前,都只是文字。

JSON 轉成 XML 時有哪些變化

有三件事值得檢查。型別會被攤平成文字,所以 true、null 和 0 都會以字元形式呈現;null 通常會變成空元素。不是合法 XML 名稱的鍵必須重新命名,因為標籤不能以數字開頭或含有空格。另外輸出會變大,因為每個值都被重複鍵名的開始與結束標籤包住。

除此之外不會遺失任何內容。巢狀結構會以巢狀元素保留,記錄的順序不變,Unicode 文字也因為以 UTF-8 寫入而完整無損。從 YAML 到 SQL 的更多結構化資料選項,列在資料格式轉換頁面。

JSON 與 XML 格式重點

JSON

JavaScript 物件表示法

JSON 是用於結構化資料的輕量文字格式,由 Douglas Crockford 在 2000 年代初期推廣,並標準化為 RFC 8259 和 ECMA-404。它以簡單易讀的語法表示物件、陣列、字串、數字、布林值和 null。幾乎所有程式語言都把它當作網頁 API、設定檔和應用程式間資料交換的預設格式。它沒有內建註解、日期或結構描述,大型巢狀檔案不用檢視器很難閱讀。

壓縮方式
–
透明度
–
動畫
–
推出年份
2001 · Douglas Crockford
JSON 轉檔工具

XML

Extensible Markup Language

XML 是 W3C 於 1998 年發布的結構化資料標記語言。它使用帶有屬性的巢狀標籤,並支援結構描述、命名空間與驗證,因此適合處理複雜文件。RSS 摘要、SVG、Office 文件、網站地圖,以及許多企業與政府的資料交換,都以它為基礎。XML 比 JSON 冗長,但所有程式語言與許多試算表工具都能讀取。

壓縮方式
–
透明度
–
動畫
–
推出年份
1998 · W3C
XML 轉檔工具

當新式資料必須符合較舊的介面規格時,就需要把 JSON 轉成 XML,例如 SOAP 端點、商品資料饋送、電子發票網路,或是接收端只會解析元素而不是大括號的設定檔。

JSON 轉 XML 轉換器常見問題

我的 JSON 以陣列開頭,為什麼 XML 需要單一根元素?

XML 1.0 規範要求每份格式正確的文件都必須有且僅有一個包含其他所有內容的元素。JSON 陣列沒有這樣的外層,因此轉換器會加上一個以 XML 根標籤命名的根元素,並把陣列中的每個項目以 <row> 放入其中。

像「2024 total」或「unit price」這類 JSON 鍵會怎麼處理?

兩者都不是合法的 XML 元素名稱:名稱不能以數字開頭,也不能含有空格。請在轉換前先在 JSON 中重新命名這類鍵,最好直接改成接收端結構描述使用的標籤名稱,這樣輸出後就不必再整理。

記錄中的 JSON 陣列在 XML 裡會怎麼寫?

每個項目會各產生一個相同名稱的元素。含有三個字串的 tags 陣列會變成連續三個 <tags> 元素。空陣列則不會留下任何內容,這是 JSON 轉 XML 少數會遺失資訊的情況之一。

轉出的 XML 能通過合作夥伴的 XSD 驗證嗎?

只有在結構本來就相符時才可以。轉換器會輸出忠實且格式正確的 JSON 副本,但它無法得知合作對象所要求的元素順序、命名空間或屬性。請把輸出當作起點,再依結構描述調整。

可以再把 XML 轉回 JSON 嗎?

請使用 XML 轉 JSON。來回轉換時可能出現些微差異:XML 把所有值都存成文字,所以原本在 JSON 中的數字或 true 可能會變成字串。