XML 与 JSON 互转
我要提建议XML 与 JSON 双向互转:属性写成 @name、文本写成 #text、同名子节点自动转数组,本地转换数据不出设备。
相关工具
这个工具是做什么的
接口对接与配置迁移时经常要在 XML 与 JSON 之间来回搬。本工具双向都支持,且映射规则固定可预期:XML 的属性写成 @name、元素文本写成 #text、同名子节点出现多次会自动合并成数组;反过来 JSON 里的 @name 会变成属性、#text 会变成元素文本、数组会展开成重复的同名元素。JSON 转 XML 时可以指定根元素名(顶层是单键对象时直接用那个键作为根)与缩进风格。转换全部在本机用本地引擎完成,粘进来的接口数据不出设备。
使用方法
- 选择方向:XML 转 JSON 或 JSON 转 XML。
- 粘贴内容;转 XML 时可填写根元素名并选择缩进。
- 点击「转换」,复制结果。
常见问题
- 属性与文本在 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。
- 会上传内容吗?
- 不会。解析与转换都在本机用本地引擎完成。