XML 与 JSON 智能双向转换,保留属性、文本、命名空间。

切换工具
XML0 字符 · 0 行
JSON0 字符 · 0 行

使用说明

用途

XML 与 JSON 互转专用工具,处理元素、属性(@attr 前缀)、文本节点(#text)、CDATA、命名空间、多个同名子元素自动转数组等情况。XML 转 JSON 时支持紧凑模式(属性放对象顶层)或安全模式(属性独立 @ 前缀对象)。JSON 转 XML 时支持根元素自定义、缩进控制、属性 / 元素的策略选择。常用于 SOAP/REST API 互转、老系统 XML 配置升级到 JSON、API 文档生成等场景。所有转换在浏览器本地完成。

操作步骤

  1. 左侧粘贴 XML 或 JSON,工具自动识别
  2. 右侧输出转换结果
  3. XML → JSON 模式:紧凑(属性直接放对象)/ 安全(属性放 @attributes 子对象)
  4. XML → JSON:多个同名子元素自动转为 JSON 数组
  5. CDATA 内容默认保留为字符串值
  6. JSON → XML:可指定根元素名(默认 root)
  7. JSON 属性约定:以 @ 开头的 key 转为 XML 属性(@id → id="...")
  8. 保留命名空间前缀(xmlns:prefix)

常见问题

XML 转 JSON 后属性怎么和元素区分?
**安全模式**: 属性放在 @attributes 或 _attr 子对象,元素和属性不会重名冲突。**紧凑模式**: 属性直接放父对象顶层,但要求 XML 没有同名的属性和子元素。**推荐用安全模式**避免歧义,调用方代码也明确(item._attr.id vs item.id)。
同名多个子元素 XML → JSON 怎么处理?
如 `<list><item>a</item><item>b</item></list>` 转 JSON: `{"list":{"item":["a","b"]}}`。**单个 item 会转为字符串**("a")而非单元素数组。**强制数组模式**让所有 item 都是数组(避免代码里 if Array else String 分支),可在工具选项里开启。
XML 的 CDATA 节区怎么转 JSON?
CDATA 内容默认转为字符串值(值里包含 < > & 等原本特殊字符)。**保留 CDATA 标记**模式会用 `{"#cdata": "..."}` 包裹,方便反向转回 XML 时还原 CDATA 段。
JSON 转 XML 根元素叫什么?
JSON 没有根概念,转 XML 需指定根元素名。**工具默认 "root"**,你可以改成 "Response" / "Data" 等业务名。如果 JSON 是数组 `[1,2,3]`,需要双层包裹(root → item × 3)。
命名空间 xmlns 转换会丢吗?
不丢。XML 转 JSON 时命名空间声明保留为 @xmlns 属性,前缀作为 key 一部分(如 soap:Envelope → "soap:Envelope")。JSON 转 XML 时手动写 @xmlns 即可生成命名空间声明。

应用场景

  • SOAP API 转 REST:老 SOAP 服务返回 XML,前端用 JSON 处理
  • 老系统配置升级:XML 配置文件批量转 JSON 格式
  • API 文档生成:OpenAPI / Swagger 把 XML schema 转 JSON schema
  • 爬虫 XML 数据:抓取的 XML 数据转 JSON 入库
  • SDK 双协议支持:同时支持 XML 和 JSON 客户端,互转方便

适用场景

SOAP-REST 桥接、老配置升级、API 文档转换、爬虫数据落库、SDK 双协议。后端、数据工程、对接老系统场景。属性策略可选、强制数组模式、CDATA 保留、命名空间不丢是关键差异点。