-2

有谁知道什么时候应该使用 XML 而不是 JSON,为什么?

谢谢

4

2 回答 2

5

XML - 优点

  1. 更严格 - 可以与文档类型定义 (DTD) 一起提供,这将允许您分析提供的 XML 数据是否在语法上正确
  2. 命名空间 - 可以帮助混合来自各种资源的数据(例如,您可以使用来自 Spring Core 和 Spring Security 的命名空间,这有助于阅读和理解标记)
  3. 可以使用 XPath 进行导航 - 有助于加快查找深度嵌套在标记中的内容
  4. 可以通过轻量级处理器(如 SAX 解析器)解析大量数据
  5. 用于某些可以强制使用 XML over JSON 的协议(如 SOAP)
  6. 更长的街区 - 一些较旧的图书馆可以/使用
  7. 不错的工具支持(如 Scala 中的本机使用或 IDE 支持)

XML - 缺点

  1. 当它变得非常大时难以阅读 - 难以维护
  2. 带有所有不必要标签的开销(例如<some_long_tag_name>...</some_long_tag_name>在一个文件中遇到 x1000 次),这可能会对网络带宽和磁盘使用产生巨大影响

JSON - 优点

  1. 更容易被人类阅读

  2. Web 浏览器中的本机支持,这要归功于JavaScript

JSON - 缺点

  1. 不包含类型定义 ( "some_object" : "10" // String or Int?)

  2. 缺少某种 DTD(你怎么知道“some_object”是必需的?)

这些只是主要的。老实说,一个人可以写一本关于它的书,所以我不知道为什么人们会降低这个问题的等级......但是我发现可以帮助你一点。

于 2012-06-21T09:07:59.543 回答
2

当(在工具、库、方法和知识的当前状态下)首选 XML 时的示例:

  • 根据一些规则进行验证(XSD、Relax NG)
  • 通过 SOAP 或 REST/XML与已建立(或某些人可能会说的遗留)系统进行通信
  • 基于 W3C 标准(XML Signature)或 Oasis 标准(WS-Security)的数字签名
  • 当有些人可能需要使用一些外部配方进行演示时- XSLT
  • 当您需要使用 XSL 和 Apache FOP 生成 PDF 时
  • 当您需要使用其标准 web/application.config 文件配置 .NET 应用程序时
  • 当您只想完成工作而不是随波逐流时
于 2012-06-21T09:08:26.373 回答