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
Convert XML data or files to JSON format instantly in your browser. Supports custom indentation and handles nested structures.
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。
大多数现代应用程序代码更适合使用 JSON。 JavaScript 原生解析 JSON,Python 的 json 模块位于标准库中,几乎所有其他语言都具有同等的一流 JSON 支持。 XML 处理需要导入额外的库并编写更多的样板文件。在处理之前将传入的 XML 转换为 JSON 通常是从外部 XML 源到内部数据结构的最快路径。
工具也倾向于 JSON。 JSON 美化器、验证器、模式验证器、查询语言(jq、JSONPath)和查看器都很丰富; XML 等效项较少且通常较旧。使用 JSON 可以解锁更丰富的工具生态系统。
粘贴 XML,获取 JSON。
DOMParser 生成的 XML DOM 与浏览器用于 XHTML 页面的内容相同。转换器递归地遍历这个 DOM。它为每个元素创建一个 JSON 对象:属性成为以 @ 为前缀的键(例如,@id、@class);该元素的子元素递归到相同的结构中;文本内容,当与孩子一起出现时,位于 #text 键下。
具有相同标签名称的重复子元素将收集到 JSON 数组中。给定名称的单个子代显示为对象值;多个子项显示为对象数组。这种约定在实践中效果很好,但意味着 JSON 形状取决于元素是出现一次还是多次——这是 XML 到 JSON 映射的已知缺陷。
命名空间保留为元素名称的一部分(前缀:localName)。处理指令和CDATA部分被转换为文本内容。 XML 声明和 DOCTYPE 将从 JSON 输出中删除,但不会影响数据。