跳到主要内容

XML 与 JSON 互转

XML 和 JSON 在线互相转换,保留属性与结构

XML 与 JSON 互转(属性以 @ 前缀、文本以 #text 表示)。基于浏览器 DOMParser,本地处理。

为什么需要 XML 与 JSON 互转

老系统、银行接口、Office 文档、SOAP 还在用 XML;而现代前端、NoSQL、配置几乎全是 JSON。两边要打通,就得把 XML 和 JSON 互相转换。手工改既慢又容易把属性、文本节点弄丢。

本工具在 XML 与 JSON 之间双向转换:XML 转 JSON 时把属性收进 @ 前缀、文本放进 #text;JSON 转 XML 时递归还原成标签结构。

概念与公式

XML 是带标签、属性、文本的树;JSON 是对象 / 数组 / 标量。两者并非一一对应,转换需约定映射:

  • XML → JSON:元素名作键;属性以 @属性名 存放;元素文本放 #text;多个同名子元素收成数组。
  • JSON → XML:对象键作标签;@ 开头的值还原成属性;#text 还原成文本;数组展开成多个同名标签。

示例:

<user id="1"><name>张三</name></user>

{ "user": { "@id": "1", "name": { "#text": "张三" } } }

细分场景

  • 接口对接:把 SOAP/XML 响应转 JSON 给前端用。
  • 配置迁移:老 XML 配置转 JSON 进新系统。
  • 数据清洗:统一格式后再做处理。

怎么用本工具

把 XML 或 JSON 贴入,选择方向(XML → JSON 或 JSON → XML),结果即时显示。解析失败会指出大致位置。复制即用。

常见场景与实例

例:带属性的元素 <book id="b1"><title>深入浅出</title></book> → 属性 id@id,标题进 title.#text

相关工具:YAML ↔ JSONJSONPath 查询

隐私说明

全程浏览器本地计算,不联网、不上传你粘贴的数据。

常见问题

XML 的属性怎么表示?
XML→JSON 时,元素属性统一加 @ 前缀(如 <a id="1"/> → {"a":{"@id":"1"}}),元素文本用 #text 键。这样属性和子元素不会冲突。
同名多子节点怎么处理?
同一父元素下多个同名子节点会自动变成数组,方便 JSON 端遍历。这是 XML 与 JSON 互转的常见约定。
JSON 转 XML 有哪些限制?
JSON 的数组/对象都能映射成 XML 元素;但键名会被当作标签名,建议用合法 XML 标签名(字母、数字、下划线、连字符)。不以对象/数组包裹的纯值也可直接输出。
CDATA 和命名空间支持吗?
CDATA 会被当作文本读取;XML 命名空间(xmlns)作为普通属性保留(@xmlns)。复杂的命名空间语义本工具不专门处理。