免费转换器

XML to JSON Converter

Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.

Select XML file

or drag and drop here

关于此工具

XML 和 JSON 都是数据交换格式,但来自不同的网络时代。 XML 于 1998 年标准化,被设计为一种具有属性、名称空间和模式验证的自描述标记格式。 JSON 出现于 2000 年代初期,是一种更适合 JavaScript 运行时和现代 API 的轻量级格式。大多数新的 Web API 都使用 JSON;许多旧系统(SOAP 服务、RSS 提要、配置文件、企业集成)仍然生成 XML。它们之间的转换是现代开发中最常见的互操作任务之一。

这种转换并不是完全无损的,因为两种格式具有不同的表达能力。 XML 具有属性(JSON 本身没有属性),区分文本内容和元素名称,并支持混合内容(同时包含文本和子元素的元素)。 JSON 简单的对象/数组模型无法直接表示这些功能,因此转换器应用约定:属性成为 @ 前缀的键,文本内容成为 #text 键,等等。

该转换器使用浏览器内置的 DOMParser 解析 XML,并遍历生成的 DOM 树以生成 JSON。与兄弟元素具有相同标签名称的元素被收集到数组中;属性进入特殊键;命名空间和处理指令如果存在则被保留。结果是人类可读的 JSON,可以合理地往返回 XML。

为什么将 XML 转换为 JSON

大多数现代应用程序代码更适合使用 JSON。 JavaScript 原生解析 JSON,Python 的 json 模块位于标准库中,几乎所有其他语言都具有同等的一流 JSON 支持。 XML 处理需要导入额外的库并编写更多的样板文件。在处理之前将传入的 XML 转换为 JSON 通常是从外部 XML 源到内部数据结构的最快路径。

工具也倾向于 JSON。 JSON 美化器、验证器、模式验证器、查询语言(jq、JSONPath)和查看器都很丰富; XML 等效项较少且通常较旧。使用 JSON 可以解锁更丰富的工具生态系统。

使用方法

粘贴 XML,获取 JSON。

  1. 粘贴或上传您的 XML: 将 XML 文本粘贴到输入区域或放置文件。 XML 必须格式良好;格式错误的 XML 会产生解析错误,而不是猜测错误。
  2. 转换: DOMParser 构建 DOM,转换器遍历每个元素,并在需要时使用属性键 (@attr) 和文本内容键 (#text) 生成 JSON。同名的同级元素成为数组。
  3. 审查结构: 检查 JSON 以确认属性、文本和嵌套已按预期映射。使用的约定(例如,@ 表示属性)在输出中可见。
  4. 下载或复制: 另存为 .json 或复制到剪贴板。

常见用例

技术细节

DOMParser 生成的 XML DOM 与浏览器用于 XHTML 页面的内容相同。转换器递归地遍历这个 DOM。它为每个元素创建一个 JSON 对象:属性成为以 @ 为前缀的键(例如,@id、@class);该元素的子元素递归到相同的结构中;文本内容,当与孩子一起出现时,位于 #text 键下。

具有相同标签名称的重复子元素将收集到 JSON 数组中。给定名称的单个子代显示为对象值;多个子项显示为对象数组。这种约定在实践中效果很好,但意味着 JSON 形状取决于元素是出现一次还是多次——这是 XML 到 JSON 映射的已知缺陷。

命名空间保留为元素名称的一部分(前缀:localName)。处理指令和CDATA部分被转换为文本内容。 XML 声明和 DOCTYPE 将从 JSON 输出中删除,但不会影响数据。

最佳实践

常见问题

将 XML 转换为 JSON 会改变内容吗?
尽可能准确地保留内容。但是,某些特定于格式的功能可能没有直接等效项,因此可能会出现细微的格式差异。
为什么要将数据转换为 JSON 格式?
JSON 是 Web API 和 JavaScript 应用程序的标准数据格式。它是人类可读的,受到编程语言的广泛支持,并且具有比 XML 更简单的语法。
转换器是否处理嵌套或复杂的 XML 结构?
是的。该工具可以正确解析嵌套对象、数组和所有标准 XML 数据类型,从而在 JSON 输出中保留完整的数据结构。
此转换安全且私密吗?
是的。所有处理都在您的浏览器本地进行。您的数据永远不会离开您的设备 - 没有服务器上传,没有云处理,没有数据收集。
是否处理 CDATA 部分?
是的。 CDATA 内容在 JSON 输出中转换为纯文本。 CDATA 包装本身不会被保留,但内容会被保留。
我的数据是否上传到服务器?
不会。DOMParser 在您的浏览器中运行;转换完全发生在您的设备上。
JSON 会往返返回 XML 吗?
是的,如果您使用相反的约定(JSON 到 XML 工具遵循相同的 @attr 和 #text 规则)。往返保留了典型 XML 的结构;一些边缘情况(混合内容订单、处理指令)可能无法完美生存。
最大输入尺寸是多少?
最大 50 MB。 DOMParser 受浏览器内存限制;非常大的 XML 文件可能会减慢速度或无法解析。