XML 转 JSON 转换器

即时将 XML 转换为 JSON

XML 输入

选项

JSON 输出

转换结果将显示在这里...

概述

XML 转 JSON 转换器可将标记密集的 XML——SOAP 响应、RSS/Atom 订阅源、旧版配置文件——转换为你的 JavaScript 或 Node.js 代码可以直接使用的干净 JSON。它基于真正的 XML 解析器而非正则表达式运行,因此会校验格式是否完整,并在标签损坏时报告精确的行号与列号,同时让你精细控制属性、命名空间和重复元素在生成的 JSON 中如何表示。

此转换器可检测和处理的内容
  • 真正的 XML 校验:格式错误的 XML(未闭合标签、嵌套不匹配、属性语法错误)会被拒绝,并给出精确的行号和列号,而不是无声地猜测
  • 可配置的属性处理:保留带前缀的属性(@_id)、将其转换为普通对象属性、归类到单个 $attributes 对象下,或完全丢弃
  • 命名空间策略:保持标签名上的命名空间前缀不变、去除前缀以获得更简洁的键,或将命名空间 URI 单独保留为元数据
  • SOAP 清理:自动移除 SOAP 响应中常见的 Envelope/Body 包装元素,只保留负载内容(一旦应用则不再往返安全)
  • CDATA 与类型解析控制:可选择将 CDATA 部分展开为专用属性,并选择数字或布尔型文本转换为真实 JSON 类型的激进程度
  • 强制数组路径:指定特定的点号路径(例如 rss.channel.item),使其始终成为 JSON 数组,即便某个订阅源恰好只包含一个条目
  • 完全在浏览器中运行:你的 XML 数据永远不会上传到服务器
何时需要将 XML 转换为 JSON
  • 将旧版 SOAP API 迁移到基于 JSON 的 REST 端点,让 JavaScript 或 Node.js 代码无需 SOAP 客户端即可处理响应
  • 解析 RSS 或 Atom 订阅源为 JSON,以便在 JavaScript 框架中构建内容聚合器或新闻仪表盘
  • 将 XML 配置文件(例如 Maven 的 pom.xml 或 .NET 的 web.config)转换为 JSON,以便进行程序化编辑或与其他配置格式比较
  • 在调试时将冗长的 XML API 响应转换为易读、带缩进的 JSON 以便检查
  • 将 XML 数据导出文件导入 MongoDB 等以 JSON 为原生格式的数据库
如何将 XML 转换为 JSON
  1. 1.将 XML 粘贴到输入编辑器,或上传 .xml 文件
  2. 2.选择属性应如何表示:带前缀的属性、普通属性、归类到 $attributes 下,或完全忽略
  3. 3.选择命名空间策略——保留、去除,或保留为元数据——以匹配你所需的键的简洁程度
  4. 4.如果你正在转换 SOAP envelope 且只想要内部负载,请启用 SOAP 清理
  5. 5.点击"转换",然后复制 JSON 输出或下载为格式化或压缩的 .json 文件
需要了解的边界情况
  • 单个重复的子元素(只有一个 <item> 而非多个)不会自动被当作数组处理,除非你在强制数组路径中列出该路径——否则它会被转换为普通对象,这可能会破坏期望得到数组的代码
  • 混合内容——同时包含文本和子元素的元素——会被展平,文本部分会作为 #text 属性与子元素的键并列显示
  • 像 "00123" 这样带前导零的数字形式的值,或超出 JSON 安全精度范围的整数,默认会保留为字符串;只有在确定数据中不包含类似 ID 的值时才应启用激进类型解析
  • 转换过程中会丢弃 XML 注释,因为 JSON 没有对应的结构
限制
  • 往返转换(XML 转 JSON 再转回 XML)不保证逐字节还原原始文档——除非启用了往返安全模式,否则元素顺序、空白字符和注释不会被完全保留,而且该模式也只对 XML 转 JSON 这一段生效
  • 非常大的 XML 文档(数十兆字节)可能超出浏览器内存或拖慢底层解析器——对于超大文件,请使用流式(SAX)解析器或 xmlstarlet 等命令行工具
  • 此工具仅校验格式是否完整,不校验是否符合 XSD 模式——即使文档违反了模式规范,只要它是格式良好的 XML,仍会被转换且不会给出警告
需要反向转换吗?

如果你从 JSON 对象或数组出发,需要生成 XML——例如调用旧版 SOAP 端点,或生成某个仅支持 XML 的工具所需的配置文件——请改用 JSON 转 XML 转换器。它让你控制缩进、决定带 @ 前缀的键是否转换为属性,并可抑制空元素。