XML 转 JSON
把 XML 文档转换成干净、可预期的 JSON
XML 输入
JSON 输出
什么是 XML 转 JSON 转换器?
XML 是 2000 年代的数据格式主力,至今仍存在于 RSS 订阅源、银行 API、SOAP 服务和旧配置文件里。现代 JavaScript、Python 和 Go 代码读 JSON 自然得多。XML 转 JSON 转换器用一套可预期的规则把文档翻译成平实对象:每个元素变成一个对象,属性以 "@@" 前缀标注,避免名为 id 的属性与同名子元素冲突,文本内容放在 "@text" 下,重复的兄弟元素折叠成数组,目录里的
它能做什么
- 把嵌套元素解析成 JSON 对象
- 区分属性(@@ 前缀)、文本(@text)和子元素
- 自动把重复兄弟元素分组为数组
- 干净处理 CDATA、注释、声明和自闭合标签
- 标签不匹配或未闭合时给出明确报错
- 以可读缩进格式化 JSON
什么时候用它
- 读取 RSS/Atom 订阅源或 SOAP 类响应
- 把 XML 配置迁移到基于 JSON 的管道
- 查看旧 XML API 实际返回了什么
- 根据 XML 参考数据构建 JSON 测试夹具
隐私:转换完全在你的浏览器里进行,粘贴的内容绝不会被上传。
本转换器的映射约定
- XML 属性变成带
@前缀的键(price currency="EUR"→{"@currency":"EUR"}),永不与子元素撞名。 - 文本与子元素混合的元素,其文本放进
#text;纯文本元素直接映射为字符串。 - 重复的兄弟元素合并成数组;XML 声明、注释与处理指令一律丢弃。
属性和文本节点需要约定
⚡
属性与文本永不混淆
属性变成 "@@id" 风格的键、文本放在 "@text" 下,同名的属性和元素永远不会互相覆盖。
🔒
列表保持为列表
重复的兄弟元素会自动折叠成 JSON 数组——五本书的目录变成五个对象的数组,而不是被覆盖成一本书。
🎯
兼容真实 XML
CDATA、注释、DOCTYPE 和自闭合标签都能干净解析;真正畸形的 XML 也会得到清晰的错误信息。
常见问题
属性如何表示?⌄
属性变成以 "@@" 前缀的键,例如 <book id="5"> 变成 {"@@id":"5"}。避免名为 "id" 的属性与同名子元素发生经典冲突。
重复的元素会怎样?⌄
同名的重复兄弟元素会自动分组为 JSON 数组。单个出现保持为单个对象,多个出现则变成数组——两种情况读起来都很直观。
我的 XML 会被上传吗?⌄
不会。一切都在你的浏览器里用纯 JavaScript 运行——没有任何内容被传输或存储。
我的属性在 JSON 输出里去哪了?⌄
到该元素对应的对象里找带 @ 前缀的键。如果只看到 #text,说明这个元素既有属性又有内容;如果预期中的属性完全找不到,它多半长在父节点上——往上一层展开看看。