跳到主要内容

XML 转 JSON 工具

把 XML 解析为 JSON 对象,属性以 @ 前缀、文本以 #text 表示,重复标签转为数组。

属性以 @ 前缀、文本以 #text 表示,重复标签自动转为数组。

这个工具是什么

XML 转 JSON 工具把一段 XML 文本解析成 JSON 对象,让老接口、RSS、配置文件这类 XML 数据能直接被按 JSON 结构消费。转换遵循常见约定:XML 属性加上 @ 前缀存放(如 @id),标签自身的文本放在 #text 键下,同名的重复标签自动收进数组。

什么时候用它

  1. 下游代码或工具只认 JSON,而手里的数据是 XML 格式时做一次格式转换。
  2. 排查 XML 结构:转成 JSON 后层级一目了然,属性、文本、子元素分开摆放,比读原始尖括号省力。
  3. 把 XML 配置或返回值贴进文档、示例代码前,先转成更常见的 JSON 形式。

有什么限制

  • XML 比 JSON 表达力强:命名空间前缀会保留在键名里,CDATA 按普通文本处理,注释与处理指令会被丢弃。
  • 属性与文本的表示依赖约定键(@ 前缀、#text),下游取值时要按这个约定来。
  • 只有文本子节点的标签直接转成字符串;既有属性又有文本的标签会转成对象。
  • 格式不合法的 XML(未闭合、多重根节点等)会报错,不会输出猜出来的结果。

常见问题

Q:为什么有的键带 @、有的内容放在 #text 里? A:@ 开头的键来自 XML 属性,#text 是标签自身的文本内容,这是转换约定,用来和普通子元素区分开。

Q:重复出现的标签怎么处理? A:同名标签出现多次时自动转成数组;只出现一次时保持为单个对象,不会强行包一层数组。

Q:转出来的 JSON 结构和预期不一样怎么办? A:先检查原文里该节点是属性还是子元素:属性会进 @ 键,文本会进 #text,只有子元素才直接成为新键。

Q:粘贴的 XML 会上传到服务器吗? A:不会。转换在你的浏览器里完成,内容不发送到服务器。