如何在 XML 和 JSON 之间转换?

Stefan Goessner 在 XML.com 发表过一篇关于 XML 与 JSON 互相转换的文章,并提供了配套的转换脚本,包括 xml2json.js 和 json2xml.js。如果你需要在这两种数据格式之间迁移或做互操作,可以直接使用这套脚本,并在 goessner.net 的下载区获取后续的 bug 修复和更新版本。

转换脚本从哪里获取

根据 goessner.net 上的记录,转换脚本与文章配套发布,入口如下:

  • 文章:XML.com 上发表的 Converting Between XML and JSON
  • 脚本:xml2json.js 和 json2xml.js
  • 更新:作者提到脚本有若干 bug 修复和更新,具体内容在网站的 download 区

也就是说,先看文章了解转换思路,再去下载区拿最新脚本,是这套资源的正常使用顺序。

两个方向分别对应什么

方向 脚本 输入 输出
XML → JSON xml2json.js XML 结构 JSON 结构
JSON → XML json2xml.js JSON 结构 XML 结构

两个脚本是独立文件,按你需要转换的方向选用即可,不需要同时引入。

适合用在什么场景

这套转换适合需要在两种数据格式之间迁移或互操作的场景,例如:

  • 已有 XML 数据源,但下游程序更习惯处理 JSON
  • 已有 JSON 配置或数据,但某个工具或接口只接受 XML
  • 在浏览器端或服务端做格式适配时,需要一个轻量的转换脚本

使用时的注意点

  • 脚本是 JavaScript 实现,运行环境需要支持 JavaScript。
  • 作者明确提到脚本有过 bug 修复和更新,使用前建议先到下载区确认拿到的是较新版本,而不是早期副本。
  • XML 与 JSON 的数据模型并不完全一一对应(例如属性、文本节点、数组的表示方式),转换结果是否符合预期,取决于你的具体数据结构,建议先用一小段代表性数据验证再批量使用。

和 JSONPath 的关系

同一网站还提供了 JSONPath,作者把它描述为“XPath for JSON”,用于在 JSON 结构中按路径表达式选取部分内容。如果你的流程是“先把 XML 转成 JSON,再从中取字段”,那么 xml2json.js 负责格式转换,JSONPath 负责在转换后的 JSON 里定位数据,两者可以配合使用。

goessner.net