XML ⇄ JSON 转换器
关于此工具
可以在 XML 和 JSON 之间进行互相转换。逻辑已经优化为重视往返转换(直接转换再转换回来)。
默认将同名的重复元素转换为数组的功能设为关闭,只有在出现 2 个以上时才会数组化。
当 JSON 根是数组时,XML 会以 <root><item>…</item>…</root>
表示,并且在 XML→JSON 时会将这种结构还原成数组。
所有处理都在浏览器内完成,数据不会发送到外部。
XML ⇄ JSON 转换
—
使用方法
- 在左侧粘贴 XML 或 JSON。
- 点击 XML → JSON 或 JSON → XML。
- 按需调整缩进、属性/文本键、命名空间保留以及数组处理。
- 使用 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 端的类型注解等方式规避,但要实现严格的等价性仍然十分困难。