toolgarden.xyz
EN

JSON ↔ XML

完成 JSON 与 XML 格式的双向互转,自动处理数组的包装元素和类型还原,浏览器本地处理,适合对接遗留接口。

JSON

XML

工具说明

JSON 是键值与数组组成的数据模型,XML 则由元素、属性和文本节点组成,两者并不存在唯一的一一映射。同一份 XML 可以根据解析规则变成不同 JSON,所以转换结果应视为一种约定,而不是可还原所有排版细节的存档格式。

工具适合处理常规 API 与配置数据。重复同名元素通常映射为数组,元素属性与正文需要用不同字段表示;命名空间、混合内容和 CDATA 较多的文档转换后尤其需要人工核对。

使用步骤

  1. 选择源格式

    根据输入选择 JSON 转 XML 或 XML 转 JSON,并粘贴完整根对象或根元素。

  2. 执行结构转换

    解析器会建立树结构;语法错误会指出缺少的括号、引号或闭合标签。

  3. 检查重复节点与属性

    确认数组、属性、文本节点及命名空间前缀符合下游系统期待,再复制输出。

输入与输出示例

注意 XML 侧的类型丢失:3 和 true 都变成了纯文本,转回 JSON 时只能靠推断。

JSON
{
  "book": { "id": 3, "title": "SQL", "inStock": true }
}
XML
<book>
  <id>3</id>
  <title>SQL</title>
  <inStock>true</inStock>
</book>

支持范围与限制

转换方向
JSON → XML 与 XML → JSON 双向
结构差异
JSON 有原生数组,XML 没有:数组需要约定一个包装元素来表示
类型丢失
XML 里一切都是文本。数字、布尔、null 转成 XML 后失去类型,转回来需要靠推断
属性与元素
XML 的属性在 JSON 里通常映射为带前缀的键,往返转换后可能与原文档不完全一致
命名空间
转成 JSON 时命名空间前缀会作为键名的一部分保留,语义信息不再被解析器理解
典型用途
对接 SOAP 接口、遗留系统和以 XML 为交换格式的行业标准

典型使用场景

  • 连接旧式 XML 接口

    把前端或脚本中的 JSON 数据转换成 XML 请求体,减少手写标签和转义错误。

  • 分析配置与响应

    把层级较深的 XML 转成 JSON,便于用现有 JavaScript 工具遍历和检查。

  • 把 XML 配置迁移到 JSON 技术栈

    旧系统的 XML 配置转成 JSON 后可以接入现代工具链,再逐步替换掉原有的解析代码。

使用前需要知道的事

  • 属性、文本和子元素可以同名,复杂 XML 的映射规则必须与接收方约定一致。
  • JSON 的 null、数字和布尔类型写进 XML 后通常只剩文本,再转回来不一定恢复原类型。
  • 元素顺序在 XML 中可能有语义,对象 key 顺序却通常不应被业务依赖。

相关概念

attribute
写在开始标签里的键值信息,例如 <item id="7"> 中的 id。
mixed content
同一个元素同时包含文本和子元素的 XML 结构,映射到普通 JSON 时最容易丢失顺序信息。

常见问题

JSON 和 XML 可以双向互转吗?
可以。工具支持 JSON → XML 和 XML → JSON 两个方向,粘贴任意一种即可转换。
转换时属性和嵌套节点怎么处理?
XML 的元素会映射为 JSON 的键,嵌套结构会保留层级;转回 XML 时按对象层级生成对应的标签。
转换会上传数据吗?
不会。JSON 与 XML 的相互转换都在浏览器本地完成,内容不会上传到服务器。
往返转换后为什么和原文档不一样?
两种格式的表达能力不对等。JSON 没有属性和命名空间的概念,XML 没有原生数组和类型。转过去再转回来时,这些差异需要靠约定填补,约定与原文档不一致就会有出入。
数组转成 XML 后结构很奇怪?
XML 没有数组类型,只能用重复的同名元素表示,通常还需要一个包装元素。不同工具的包装约定不一样,对接时要和接收方确认预期的结构。