我们目前正在规划一个新的 API 对于一个应用程序和辩论的各种数据格式,我们应该使用为交换。还有一个相当强烈的讨论会有关的相对优点的 CSV, JSONXML.

基本上,问题的关键参数是,我们是否应该支持 CSV 在所有的因为缺乏递归(即有一份文件而已 multiple authorsmultiple references 将要求 multiple API calls 得到所有 information).

在经历,你可能有时工作的信息 Web APIs 和我们可以做的事情来让生活更容易的开发工作与我们的 API.


我们决定:

我们已经决定提供 XMLJSON 由于难以在递归 CSV 需要多个呼吁的单个逻辑操作。 JSON 没有一个分析器 QtProtocol Buffers 似乎没有一个 non-alpha PHP 执行,使他们出的那一刻但也可能会支持最终。

有帮助吗?

解决方案

CSV马上就出来了。 JSON是比XML更紧凑的对象表示法,因此如果您正在寻找高容量,它具有优势。 XML具有更广泛的市场渗透率(我喜欢这个短语)并且得到所有编程语言及其核心框架的支持。 JSON即将到达(如果还没有)。

就个人而言,我喜欢括号。我敢打赌,使用xml数据比使用json更适合开发人员。

其他提示

优点:

  • XML的许多图书馆、开发人员都熟悉它,XSLT,可以easiily验证了由客户和服务器(文件,DTD),分级数据
  • 书很容易地解释上的客户方面,紧凑型的符号,分级数据
  • CSV-打开在Excel(?)

缺点:

  • XML的臃肿,难以解释在JavaScript于JSON
  • 星如果使用不当可能会造成安全漏洞(不使用eval),并不是所有语言都有图书馆解释。
  • CSV-不支持数据层级的,你是唯一一个这样做的,它实际上是很难比大多数开发者认为,分析有效csv文件(CSV值可以包含新的生产线,只要作为它们之间的报价等)。

鉴于上述,我甚至不会打扰支持CSV。客户可以产生它从XML函如果这是真正需要的。

CSV作为一个复杂的数据模型存在很多问题,我不会使用它。 XML非常灵活且易于编程 - 客户端编写XML生成器和解析器没有问题,您甚至可以使用SAX提供示例解析器。

您是否查看过Google的网络数据格式?它叫做Protocol Buffers。不知道它是否对REST服务有用,但它也会跳过整个HTTP层。

XML有时可能有点重量级。 JSON非常好,但是它具有良好的语言支持,并且JSON数据可以直接转换为许多游戏形式的本机对象。

我对JSON没有任何经验,当您的数据非常表格且结构均匀时,CSV可以达到一定程度。 XML可能会很快变得难以处理,尤其是如果您没有自动创建对象绑定的工具。

我还没试过,但 Google的协议缓冲区看起来非常好,格式简单,创建自动绑定到C ++,Java和Python,并实现创建对象的序列化和反序列化。

除了 Allain Lalonde已经说过的内容之外,CSV的另一个优势是它比XML更紧凑甚至是JSON。因此,如果您的数据严格表格,并且具有完全平坦的层次结构,则CSV可能是正确的选择。 CSV的附加缺点是它可能使用不同的分隔符和小数分隔符,这取决于哪个工具(甚至国家!)生成它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top