代码之家  ›  专栏  ›  技术社区  ›  Mike McQuaid

对于RESTAPI,csv、json和xml的相对优点是什么?

  •  23
  • Mike McQuaid  · 技术社区  · 17 年前

    我们正在计划新的 API 对于一个应用程序和争论各种数据格式,我们应该使用交换。关于 CSV , JSON XML .

    基本上,争论的关键是我们是否应该支持 猪瘟病毒 因为没有递归( 也就是说,有一份文件 multiple authors multiple references 将需要 multiple API calls 获取所有 information )

    在处理来自 Web APIs 我们可以做些事情,让与我们合作的开发人员的生活更轻松。 美国石油学会 .


    我们的决定:

    我们决定提供 XML 杰森 由于递归困难 猪瘟病毒 一个逻辑操作需要多个调用。 杰森 中没有分析器 Qt Protocol Buffers 好像没有 non-alpha PHP 因此,它们现在也不在使用,但最终可能会得到支持。

    6 回复  |  直到 9 年前
        1
  •  18
  •   Will    17 年前

    csv就在外面。JSON是一种比XML更紧凑的对象表示法,因此如果您要寻找大容量的对象,它就具有优势。XML具有更广泛的市场渗透性(我喜欢这个短语),并且受到所有编程语言及其核心框架的支持。JSON正在到达那里(如果还没有的话)。

    就个人而言,我喜欢括号。我敢打赌,比起JSON,更多的开发人员更愿意使用XML数据。

        2
  •  23
  •   Allain Lalonde    17 年前

    优势:

    • XML-很多库,开发人员都熟悉它,XSLT,可以很容易地由客户机和服务器(XSD,DTD)验证,分层数据
    • JSON—易于在客户机端解释、简洁的符号、层次数据
    • csv-在Excel中打开(?)

    缺点:

    • XML-膨胀,在JavaScript中比JSON更难解释
    • JSON——如果使用不当会造成安全漏洞(不要使用eval),并不是所有语言都有库来解释它。
    • csv-不支持分层数据,您将是唯一一个这样做的人,事实上,它比大多数开发人员认为要解析有效的csv文件要困难得多(csv值可以包含新行,只要它们在引号之间,等等)。

    考虑到上面的内容,我甚至不想费心支持csv。如果确实需要,客户机可以从XML或JSON生成它。

        3
  •  2
  •   JeeBee    17 年前

    作为一个复杂的数据模型,csv有很多问题,我不会使用它。 XML非常灵活,并且易于编程——客户机对XML生成器和解析器进行编码不会有问题,甚至可以使用SAX提供示例解析器。

    你查过谷歌的网络数据格式吗?它被称为协议缓冲区。但不知道它是否对REST服务有用,因为它也跳过了整个HTTP层。

        4
  •  2
  •   William Keller    17 年前

    XML有时可能有点重。不过,JSON非常好,它具有良好的语言支持,并且JSON数据可以在许多playforms上直接转换为本机对象。

        5
  •  1
  •   Harald Scheirich    17 年前

    我对JSON没有任何经验,当您的数据是非常表格化和结构均匀的时候,csv工作到一定程度。XML很快就会变得笨拙,特别是如果您没有自动创建对象绑定的工具。

    我也没试过,但是 Google's Protocol Buffers 看起来非常好,简单的格式,创建自动绑定到C++,Java和Python,并实现所创建对象的序列化和反序列化。

        6
  •  0
  •   Haroldo_OK    9 年前

    来自于 what Allain Lalonde already said csv的另一个优点是它比xml甚至json更紧凑。所以,如果你的数据是 严格地 表格式的,完全扁平的Hyerarchy,csv可能是一个正确的选择。csv的另外一个缺点是它可以使用不同的分隔符和小数点分隔符,而不使用哪个工具(甚至国家!)生成它。