什么是CSV,JSON的相对优点和XML的REST API?(What are the relati

2019-07-05 09:41发布

目前,我们正在规划一个新的API的应用程序和辩论,我们应该互换使用的各种数据格式。 有一个相当激烈的讨论正在进行有关的相对优点CSVJSONXML

基本上,争论的关键是,我们是否应该支持CSV都因为缺乏递归的( 即具有其中有一个文件multiple authorsmultiple references需要multiple API calls来获取所有的information )。

在经验与信息的工作时,你可能有Web APIs和事情可以做,以使更容易与我们的合作开发者的生活API


我们决定:

我们已经决定提供XMLJSON由于在递归难度CSV需要一个单一的逻辑操作的多个调用。 JSON没有一个解析QtProtocol Buffers似乎并不具有non-alpha PHP实现,因此他们出的时刻太多,但可能会被最终支持。

Answer 1:

CSV是正确的。 JSON比XML更紧凑的对象表示法,所以如果你正在寻找大批量它的优点。 XML有更广阔的市场渗透率(我喜欢这句话),并通过所有的编程语言和他们的核心框架的支持。 JSON是到达那里(如果尚未有)。

就个人而言,我喜欢的支架。 我敢打赌更多的开发者是舒适的处理XML数据的比JSON。



Answer 2:

好处:

  • XML - 大量的库,离散事件对它都很熟悉,XSLT,可以通过easiily客户端和服务器(XSD,DTD),分层数据进行了验证
  • JSON - 在客户端容易理解的,紧凑的符号,分层数据
  • CSV - 打开在Excel(?)

缺点:

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

鉴于上述情况,我也不会甚至懒得支持CSV。 如果它真正需要的客户可以从XML或JSON生成它。



Answer 3:

CSV有这么多的问题,我不会用复杂的数据模型。 XML是非常灵活,易于编程与 - 客户不会有任何问题编码XML生成器和分析器,你甚至可以使用SAX提供样本分析器。

你检查了谷歌的网络对数据格式? 这就是所谓的协议缓冲区。 不知道这是否是一个不过REST服务有用,因为它跳过整个HTTP层了。



Answer 4:

XML可以在次位重量级。 JSON是相当不错的,不过,有良好的语言支持,JSON数据可以直接转换为本地对象很多playforms。



Answer 5:

我没有与任何JSON经验,CSV作品在一定程度上,当你的数据是非常表格和均匀的结构。 XML可以成为笨拙非常快,特别是如果你没有这样的自动创建绑定到你的目标的工具。

我也没有试过,但谷歌的协议缓冲器看起来真的很不错,简单的格式,创建自动绑定到C ++,Java和Python,并实现创建的对象的序列化和deserialisation。



Answer 6:

从旁白什么阿兰拉隆德已经说过 ,CSV的一个额外好处是,它往往比XML或JSON甚至更紧凑。 所以,如果你的数据是严格的表格,具有完全平坦hyerarchy,CSV可能是一个正确的选择。 CSV的产生额外的缺点是,它可能会使用不同的分隔符和小数点分隔符,depeding上生成工具(甚至国家!)它。



文章来源: What are the relative merits of CSV, JSON and XML for a REST API?
标签: xml json api rest csv