XML ⇄ JSON 转换器

关于此工具

可以在 XML 和 JSON 之间进行互相转换。逻辑已经优化为重视往返转换(直接转换再转换回来)
默认将同名的重复元素转换为数组的功能设为关闭,只有在出现 2 个以上时才会数组化。
当 JSON 根是数组时,XML 会以 <root><item>…</item>…</root> 表示,并且在 XML→JSON 时会将这种结构还原成数组。 所有处理都在浏览器内完成,数据不会发送到外部。

XML ⇄ JSON 转换

使用方法

  1. 在左侧粘贴 XML 或 JSON。
  2. 点击 XML → JSONJSON → XML
  3. 按需调整缩进、属性/文本键、命名空间保留以及数组处理。
  4. 使用 Validate 按钮进行语法检查。

示例

XML → JSON:

<user id="42">
  <name>Taro</name>
  <role>admin</role>
  <role>editor</role>
</user>
{
  "user": {
    "@id": "42",
    "name": "Taro",
    "role": ["admin", "editor"]
  }
}

补充

  • 属性使用 [属性前缀][属性名] 表示(默认如 @id)。
  • 元素正文使用 [文本键](默认 #text)。
  • 同名元素默认保持单值,仅在有 2 个以上时才转换为数组。
  • 当 JSON 根是数组时,XML 以 <root><item>…</item>…</root> 表示(项名称可调整)。
  • 空元素在没有文本和属性时会输出为空对象 {}

注意事项(等价性的限制)

我们尽量确保“原始 JSON”→XML→“还原后的 JSON”能够得到同一个文件,但遇到下面的情况请理解这点难以做到。

原始 JSON:


    "urls": [
             "admin.microsoft.com"
            ],
    "expressRoute": false,
    "id": 160,

还原后的 JSON:


    "urls": "admin.microsoft.com",
    "expressRoute": "false",
    "id": "160",

※由于 XML 与 JSON 对类型的处理方式不同,虽然可以通过 XML 端的类型注解等方式规避,但要实现严格的等价性仍然十分困难。