XML 与 JSON 互转

我要提建议

XML 与 JSON 双向互转:属性写成 @name、文本写成 #text、同名子节点自动转数组,本地转换数据不出设备。

相关工具

这个工具是做什么的

接口对接与配置迁移时经常要在 XML 与 JSON 之间来回搬。本工具双向都支持,且映射规则固定可预期:XML 的属性写成 @name、元素文本写成 #text、同名子节点出现多次会自动合并成数组;反过来 JSON 里的 @name 会变成属性、#text 会变成元素文本、数组会展开成重复的同名元素。JSON 转 XML 时可以指定根元素名(顶层是单键对象时直接用那个键作为根)与缩进风格。转换全部在本机用本地引擎完成,粘进来的接口数据不出设备。

使用方法

  1. 选择方向:XML 转 JSON 或 JSON 转 XML。
  2. 粘贴内容;转 XML 时可填写根元素名并选择缩进。
  3. 点击「转换」,复制结果。

常见问题

属性与文本在 JSON 里长什么样?
属性映射为 @ 前缀的键(如 <book id="1"> → { "@id": "1" });元素文本映射为 #text。只有文本、没有属性和子节点的元素会直接给字符串,因此 <name>Tom</name> 会得到 "Tom" 而不是 { "#text": "Tom" }。
同名子节点怎么处理?
出现多次时自动合并为数组,只出现一次就是单值——这正是 JSON 表达重复元素的惯用方式。因此 <list><item>1</item><item>2</item></list> 会得到 { "list": { "item": ["1", "2"] } }。
CDATA 与注释会保留吗?
CDATA 的内容会被当作文本读取(与普通文本合并);注释与处理指令会被忽略,因为 JSON 没有对应结构,强行保留只会产生无法还原的字段。
转换结果是双向可逆的吗?
常规结构基本可逆,但有几处天然会丢信息:只出现一次的元素转成单值后再转回 XML,仍然是单个元素(信息不丢);而注释、属性顺序、空白缩进这些无法在 JSON 中表达的内容会丢失。需要严格保真时请保留原始 XML。
会上传内容吗?
不会。解析与转换都在本机用本地引擎完成。