返回教程

JSON 与 XML 怎么选

同一份数据,JSON 用键值对与数组表达,XML 用标签嵌套。多数 Web 场景 JSON 已是默认,但 XML 仍有不可替代的领地。看完这篇知道什么时候选哪个、以及怎么互转。

同一份数据的两种长相

上面的例子里,JSON 三行说清的事 XML 用了五行:每个字段名都要开闭标签各写一遍。JSON 的数组、数字、布尔是原生类型;XML 里一切都是文本,类型要靠约定或 Schema 补。

{ "user": { "id": 1, "name": "Alice" } }

<user>
  <id>1</id>
  <name>Alice</name>
</user>

JSON 的优势

更小:同样的数据体积通常小三成以上,传输解析都快。更贴近程序:结构直接对应对象与数组,前端拿到就能用,不需要再走一层 DOM 遍历。生态上,现代 API 几乎默认 JSON,配套工具链也最全。

XML 仍然在场的地方

文档类数据(混排文本 + 标记)是 XML 的主场,HTML 本身就是近亲;需要属性、命名空间、注释、严格 Schema 校验(XSD)的企业集成场景;既有协议如 RSS、SVG、Office 文档格式、SOAP 接口、Android 与 Maven 配置,都还是 XML。

互转时要注意什么

两边模型不完全对齐:XML 的属性与子元素在 JSON 里都会变成键值,重复标签要合并成数组,注释会丢;反向转换时数组回到重复标签、类型信息变纯文本。转完关键数据抽查一遍,别默认无损。

结论

对外 API、前后端交互、配置数据,默认 JSON;文档结构、遗留系统对接、上面列到的既有协议,继续 XML。两者不是信仰之争,是场景分工。

在线 JSON 与 XML 互转