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。两者不是信仰之争,是场景分工。