5月27日 01:12

XML 和 JSON 的区别是什么?

JSON 现在是默认的数据交换格式。XML 在上一个时代扮演过同样角色。

最大的区别:JSON 是数据格式,XML 是标记语言。JSON 直接表达对象、数组、字符串,XML 用标签包裹数据,更侧重文档结构。

json
// JSON { "name": "张三", "age": 30 }
xml
<!-- XML --> <person> <name>张三</name> <age>30</age> </person>

JSON 的优势:更轻量、解析更快(JSON.parse vs DOM/SAX 解析)、天然映射 JS 对象、Schema 更简单。XML 仍有用的场景:需要属性+值+命名空间(SOAP 协议)、需要 DTD/Schema 验证、大量文档处理时 XPath/XSLT 更灵活。

追问

为什么 JSON 取代了 XML 做 Web API 的数据格式?

两点:JS 生态的爆炸式增长(JSON 是 JS 原生支持的,XML 需要额外解析)和移动端的带宽敏感(JSON 更紧凑)。REST API + JSON 几乎成了标配。

JSON 有什么缺点?

  • 不支持注释(JSONC 是变体)
  • 不支持日期类型(需转换成字符串或时间戳)
  • 浮点数精度问题(0.1 + 0.2 !== 0.3 在不同 JSON 解析器中处理不一致)
  • 没有二进制支持(Base64 编码后体积膨胀)

XML 现在还用在哪?

  • 银行、政府系统(SOAP 协议)
  • Office 文档格式(docx、xlsx 本质上是 XML 的 ZIP 包)
  • SVG 图像
  • Android 布局文件
  • RSS/Atom 订阅
标签:前端