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 订阅