XML 到 JSON 转换器
具有三种映射策略的双向 XML 和 JSON 转换器。选择紧凑的 xml2js 样式输出,详细的无损往返,或简化的最干净的 JavaScript 友好结果。处理属性、CDATA、命名空间和重复元素。
如何将 XML 转换为 JSON
选择映射策略
紧凑(默认)将属性放在 @-前缀键,文本内容下 #text,并将重复的子元素合并到数组中 — 匹配 xml2js 和大多数后端 XML 库使用的约定。详细产生明确的 { name, attributes, children } 每个节点的结构都没有歧义,非常适合完全无损的往返。 Simplified 将纯文本元素折叠为裸字符串值,以丢失这些叶节点上的属性为代价提供最干净的 JavaScript 友好输出。
粘贴或输入您的 XML
在左窗格中输入任何有效的 XML。当启用实时模式时,该工具会在您键入时实时转换。通过单击“转换”,将“实时”关闭以仅按需转换。单击示例可加载包含属性、重复元素和 CDATA 部分的真实图书馆目录示例,以探索所有三种策略。
属性、CDATA 和命名空间
CDATA 部分在所有三种模式下都保留为文本内容。默认情况下,注释会被删除(JSON 没有注释语法),但会在详细模式下保留为类型化节点。命名空间前缀如 soap:Envelope 或者 xsi:type 作为元素和属性名称的一部分逐字保留 - 该工具不会解析命名空间,但可以毫无错误地处理它们。所有 XML 实体引用 (&, <, 数字 &#NN;)在解析时解码并在发出时重新编码。
反向转换:JSON 到 XML
将方向切换到 JSON → XML 以从 JSON 对象重建 XML。紧凑的 JSON 期望 @-前缀属性键和 #text 对于文本内容。详细 JSON 必须是类型化节点对象的数组。简化的 JSON 将所有原始值视为子元素文本,其中 _text 作为特殊文本键。使用 Swap 将输出作为输入发回,以便立即验证往返。
常见问题解答
为什么要将 XML 转换为 JSON?
XML 在传统 API、SOAP 服务、RSS 提要、配置文件和政府数据格式中仍然很常见。 JSON 是 JavaScript 的本机数据结构,也是现代 REST API 的主导格式。转换使得任何现代前端、Node.js 服务或 Python 脚本都可以轻松使用 XML 数据。
三种映射策略有什么区别?
紧凑将属性放在 @- 带前缀的键,下面的文本 #text,并将重复的子元素合并到数组中 — 符合 xml2js 约定。详细产生明确的 { name, attributes, children } 结构没有歧义。 Simplified 将纯文本元素折叠成裸字符串,生成最干净的 JavaScript 友好输出,但会丢失这些节点上的属性。
它是否处理 CDATA、注释和命名空间?
CDATA 部分保留为文本内容。默认情况下,注释会被删除(JSON 没有注释语法),但仍保持详细模式。命名空间前缀如 soap:Envelope 作为元素和属性名称的一部分逐字保留 - 该工具不执行名称空间解析,但也不会破坏前缀名称。
转换是无损的吗?
详细模式是完全无损的。紧凑模式丢失了注释以及属性与子项之间的顺序。简化模式还会丢失纯文本元素的属性。只要 JSON 与所选策略匹配,反向方向就会从三种格式中的任何一种重建有效的 XML。
我的文件上传到任何地方了吗?
不会。解析器、序列化器和反向转换器全部使用 JavaScript 在浏览器中运行。没有任何内容发送到任何服务器,没有分析观察输入,页面加载后可以离线工作。