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 并下载。如果接收系统的 schema 要求不同的标签名,请自行重命名。

大多数API都已改用JSON,为什么还要把JSON转成XML

JSON 赢得了 Web 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 存储的是字符。在 schema 或读取程序指明它是小数之前,12.5 只是文本。

JSON转成XML后有哪些变化

有三点值得检查。类型会变成文本,所以 true、null 和 0 都会以字符形式出现;null 通常会变成空元素。不是合法 XML 名称的键必须重命名,因为标签不能以数字开头,也不能包含空格。另外输出体积会更大,因为每个值都被重复键名的开始和结束标签包起来。

除此之外不会丢失任何内容。嵌套结构会保留为嵌套元素,记录顺序不变,Unicode 文本也完好无损,因为文件以 UTF-8 写入。从 YAML 到 SQL 的更多结构化数据选项,列在数据格式转换页面。

JSON与XML格式要点

JSON

JavaScript 对象表示法

JSON 是一种轻量级结构化数据文本格式,由 Douglas Crockford 在 21 世纪初推广,并被标准化为 RFC 8259 和 ECMA-404。它用简单易读的语法表示对象、数组、字符串、数字、布尔值和 null。它是网络 API、配置文件以及几乎所有编程语言之间数据交换的默认格式。它没有内置注释、日期或模式,嵌套很深的大文件没有查看器就很难阅读。

压缩方式
–
透明度
–
动画
–
发布年份
2001 · Douglas Crockford
JSON 转换器

XML

可扩展标记语言

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 中重命名这类键,最好直接改成接收方 schema 使用的标签名,这样输出结果之后无需再整理。

记录中的JSON数组在XML里怎么表示?

每一项对应一个重复的同名元素。包含三个字符串的 tags 数组会变成连续三个 <tags> 元素。空数组则不会留下任何内容,这是 JSON 转 XML 会丢失信息的少数情况之一。

生成的XML能通过合作方的XSD校验吗?

只有结构本身已经吻合时才行。转换器会如实生成一份格式良好的 JSON 副本,但无法知道合作方要求的元素顺序、命名空间或属性。请把输出当作起点,再按 schema 调整。

能把XML再转回JSON吗?

请使用 XML 转 JSON。来回转换会有一些细小差异:XML 把所有值都存为文本,所以原本在 JSON 中的数字或 true 可能会变回字符串。