无需登录 数据私有 本地保存

XML转JSON工具 - 在线XML数据转JSON格式

23
0
0
0

XML 转 JSON 工具

在线将 XML 数据转换为 JSON 格式,支持属性、嵌套结构、数组自动识别

XML 输入
字符: 0 | 行: 0 XML
转换
JSON 输出
字符: 0 | 行: 0 JSON

常见问题与知识点

XML(可扩展标记语言)使用标签来定义数据结构,支持属性、命名空间和注释,适合文档标记和复杂的数据交换场景。

JSON(JavaScript 对象表示法)基于键值对和数组,语法更简洁,数据体积更小,解析速度更快,是现代 Web API 的主流数据格式。

简单来说:XML 更像"文档",JSON 更像"数据对象"。XML 有开始标签和结束标签,结构更冗余;JSON 使用花括号和方括号,更紧凑易读。

XML 元素的属性会被转换为 JSON 对象中以 @ 为前缀的键。例如 <book category="fiction"> 会转换为 "@category": "fiction"。这样做可以清晰区分属性与子元素,避免命名冲突,也是 xml2js 等主流库的通用做法。

当同一父元素下出现多个同名子元素时,工具会自动将它们合并为一个 JSON 数组。例如多个 <item> 会被转换为 "item": [{...}, {...}]。如果只有一个该名称的元素,则保持为对象,不会包裹在数组中。

转换失败通常是由于 XML 格式不正确导致的。请检查:
① 所有标签是否正确闭合;
② 属性值是否用引号包裹;
③ 是否存在非法字符(如未转义的 & 应写为 &amp;);
④ XML 声明是否在文件最开头且没有多余空格。
工具会在输入面板下方显示具体的错误信息,帮助您定位问题。

许多旧系统或 API 仍使用 XML 格式输出数据(如 RSS 订阅、SOAP 服务、配置文件),而现代前端框架和 JavaScript 应用更擅长处理 JSON。将 XML 转为 JSON 后,可以更方便地在 Web 应用、移动端、数据可视化等场景中使用这些数据。

CDATA 区域(<![CDATA[...]]>)中的内容会被提取为普通文本字符串,保留原始文本内容。XML 注释<!-- ... -->)在转换过程中会被忽略,不会出现在 JSON 输出中。

理论上可以,但需要注意:JSON 转 XML 的映射并非完全可逆。例如,JSON 中的数组需要约定如何对应到 XML 的重复元素;@ 前缀的属性需要还原为 XML 属性。如果您需要双向转换,建议保留原始 XML 或使用支持双向转换的专业工具。

工具完全在您的浏览器本地运行,不会上传数据到服务器。理论上可以处理大多数常规大小的 XML 文件(几 MB 以内)。对于超大文件(如 50MB+),可能会因浏览器内存限制而变慢或卡顿。建议分批处理大型数据集。

当前版本的转换会保留命名空间声明(xmlns)作为普通属性(以 @xmlns 形式出现),但不会对带命名空间前缀的标签做特殊展开。对于大多数常见场景(如 RSS、简单配置文件),这已经足够使用。

在 JavaScript 中,您可以使用浏览器内置的 DOMParser 解析 XML,然后递归遍历 DOM 树构建 JSON 对象。核心步骤:
new DOMParser().parseFromString(xmlStr, "text/xml") 解析;
② 遍历子节点,收集同名元素为数组;
③ 区分属性(@前缀)、文本节点(#text)和子元素;
④ 使用 JSON.stringify 格式化输出。本工具正是基于此原理实现。