按 ⌘K 切换工具
FORMAT & CONVERT
XML → JSON 转换工具
将XML文档转换为JSON格式。
xml-json
Attributes are prefixed with @. Conversion runs entirely in your browser.
§01 关于此工具
概述
XML 依然到处都在——RSS 源、SOAP 报文、站点地图、遗留 API——但现代工具链想要的是 JSON。
这个转换器用浏览器原生的 DOMParser 解析 XML,输出两空格缩进的格式化 JSON。
属性以 @ 前缀保留,混合文本存放在 #text 下,重复的兄弟标签会变成数组。
转换出来的 JSON 通常是给后续处理用的中间形态:先把一段 XML 变成 JSON, 再用你熟悉的方式取值,比直接和 DOM 打交道省事得多。
使用方法
- 把文档粘贴到 XML 输入框,转换随着你的输入进行。
- 从 JSON 输入框读取结果。XML 有毛病时,两个框之间会显示
Invalid XML错误,而不是给出结果。
示例
<user id='1'><name>Alice</name></user>→
{
"user": {
"@id": "1",
"name": "Alice"
}
}
<list><item>a</item><item>b</item></list>→ 两个item元素会合并成数组["a", "b"]。
说明
这个映射是单向的(XML → JSON),而且天然有损:注释、处理指令、CDATA 的区别,
以及超出普通属性形式的命名空间声明,都不会被带过去。既没有属性也没有子元素的元素
会转成一个纯字符串,所以 <port>8080</port> 得到的是 "8080"——
一个字符串,而不是数字。@ 前缀的意义在于把属性和同名的子元素区分开,
否则两者在同一个对象里就没办法共存。
FAQ
我的 XML 会被发送到服务器吗?
不会。解析使用浏览器内置的 DOMParser,JSON 在本地生成,不上传任何内容。
XML 属性在 JSON 里是怎么表示的?
属性变成带 @ 前缀的键(例如 id="1" 变成 "@id": "1"),而带属性的元素内部的文本会存到 #text 键下。
重复出现的元素会怎么处理?
当同一个标签在同一个父节点下出现多次时,这些值会自动收集成一个 JSON 数组,因此条目列表能自然地转换过来。