【问题标题】:What's better: Json or XML (PHP) [closed]更好的是:Json 或 XML (PHP) [关闭]
【发布时间】:2010-11-10 03:36:55
【问题描述】:

我正在使用 PHP 处理少量数据,我可以在 Json 和 XML 之间进行选择。但我不知道该选择什么,我从未与他们中的任何一个合作过。所以我想要最简单的。

我还想知道是否有可以使解析(XML 或 Json)更容易的好类。

我主要关注易用性而不是速度和规模。

【问题讨论】:

  • 假设您将与某种客户端讨论 JSON 或 XML,我们都已经回答了这个问题。如果您不是(例如,您将像“普通” PHP 应用程序一样生产 HTML),那么您将不会使用其中任何一个。还是您在谈论在服务器端进行序列化(例如,到文件)...... ???
  • 我说要用PHP来操作数据,不知道为什么大家一头雾水,说说客户端。服务器有一些数据(从某个地方下载)并将使用 PHP 来操作它,这是更容易的一个。数据很小,但结构很复杂,所以我想要最容易操作的(Json or XML??)
  • JSON 和 XML 是用于将数据从 PHP 处理器中取出或取出的格式。在 PHP 中,您将使用直接的 PHP 对象。数据提供者是否强迫您在这两种格式之间进行选择?否则你可能会使用 PHP 对象序列化或数据库。

标签: php xml json


【解决方案1】:

json.org 使 JSON 解析变得简单。 SimpleXML 使 PHP 的 XML 变得简单。

选择哪一个时,实际上取决于您的应用程序。如果您要将数据传递给 JavaScript 以在客户端进行处理,那么我推荐使用 JSON。 IMO,XML 更适合系统之间的数据交换,因为它易于理解且易于阅读(使您更容易解释)。 JSON 在网络上更小,因为没有结束标签。

【讨论】:

  • 和我说的一样。 +1 表示“这真的取决于”
  • 我同意“这取决于”,但我认为 xml 与 json 相比没有任何优势 wrt 可读性;它们大致相似。 JSON 大小的好处是存在的,但通常并不重要:如果大小确实很重要,那么压缩数据会使它们的大小大致相同(相同的信息内容等)。就我个人而言,我会根据工具(易用性)进行选择,但不能评论 PHP。对于 Java,两者都有很多工具,我认为 PHP 也是如此。
  • 阅读此内容:edwardawebb.com/tips/xml-json 更多的是关于网络,但同样部分适用于解析。
【解决方案2】:

JSON 解析和生成原生包含在 php 中: http://www.php.net/json

【讨论】:

    【解决方案3】:

    我觉得以下 StackOverflow 条目最能回答您的问题:

    至于哪一个最简单?
    jQuery 使您的 JavaScript 对象序列化为 JSON 对象变得容易。

    但是,如果你仍然不确定......

    以下是其他一些文章:

    【讨论】:

      【解决方案4】:

      JSON 将您的数据视为编程语言中已知的结构:地图/字典(在 JSON 中称为“对象”)、数组和文字。 JSON 将这些基本结构放入层次结构中。

      XML 也是分层的,但它具有三个基本部分:元素(带有开始/结束标签)、元素内的属性和文本内容。元素和文本内容可以混合使用,因此适合标记文档。 JSON 不适合这个。

      XML 围绕它构建了庞大的生态系统,并提供了许多现成的工具:用于检查 XML 文档是否有效的各种模式、转换语言、用于导航文档的 XPath 等。在这方面也缺少 JSON。

      虽然 XML 比 JSON 复杂得多。编写自己的 JSON 解析器既简单又有趣,但编写 XML 解析器是huge undertaking(对于 XML 新手肯定不适合)。在 Javascript 中,可以通过评估文本来解析 JSON(虽然这很不安全)。

      如果您需要在两个系统之间传输数据,JSON 就可以了。如果您想使用 XML 中更高级的属性(实体、自动包含其他文档、模式、隐式属性值等),或者混合内容和标记,XML 将更适合您。

      【讨论】:

      • 在客户端(基本上所有客户端)和服务器(PHP)端都没有用于 XML 操作的库吗?
      • 丹尼尔,我确定有。我的回答更多地关注“JSON vs XML”而不是库。我通常使用 Java,Java 世界中有大量的 XML 库。在 PHP 中,我使用 SimpleXML 来满足我的(简单)需求,并且它确实有效。
      • 明白了,彼得,我想我是在问第 4 段是如何影响你的答案的。我会投赞成票,因为在阅读了几次您的答案后,我意识到您实际上指出了一些重要的事情:XML 有一个完整的世界(如您所说的生态系统):JSON 似乎根本没有。不是提问者在乎... :)
      【解决方案5】:

      需要考虑的一点是,至少在下载时,XML 和 JSON 之间的大小差异(XML 更大)并不是很有趣,因为您将在 HTTP 上使用 GZIP 压缩。

      如果您确定您将使用 Javascript 并且从不使用任何其他类型的客户端(其他网站、Flash/Flex 客户端等),那么 JSON 非常棒,而且可能会更轻松一些。另一方面,如果您需要在 XML 上工作,现在使用 XML 可以节省您的时间。

      无论如何,最好的办法是检查 Google 人员使用 LiveHTTPHeaders for Gmail 或他们的任何应用程序在做什么。我很确定它是 XML 而不是 JSON,但你可以检查我。在所有情况下,做谷歌所做的事情可能会被认为是“没有思考”,但他们通常比我聪明,而且有更多的时间来思考:)

      【讨论】:

      • 大小的差异......并不是很有趣
      • 嗯...是的,如果我们谈论的是巨大的文件,世界就变得很明显:我认为您必须进行测试和基准测试并获得线索。 JSON 显然比从 XML 解组更快……不是吗?
      • ""做谷歌所做的事情可能会被认为是“没有思考”,但他们通常比我聪明,而且有更多的时间来思考 :)"" 不是真的这取决于很多事情,他们不会选择“BEST”,而是选择“BEST ONE FOR GMAIL”
      【解决方案6】:

      这取决于。

      示例:您希望将应用程序放入一个大上下文 (EAI) 中,那么您应该使用 XML(可能是 Webservices 和 WSDL)。

      示例 2:如果您想要一个简单的用户界面,基于 javascript 和 ajax,您应该考虑 JSON。

      当您使用 javascript 时,JSON 最有用。在大多数情况下,XML 库非常易于使用,易用性几乎相同。

      【讨论】:

        【解决方案7】:

        如果你选择 XML 使用 SimpleXML,一个非常简单易用的库

        【讨论】:

          【解决方案8】:

          如果您还没有使用过,请选择 JSON。到目前为止的答案是正确的,因为两者都有很多帮助,而且你会很快地开始并运行。 JSON 具有比 XML 不那么臃肿的额外优势,并且在客户端上时可以轻松“转换”为 javascript

          【讨论】:

            【解决方案9】:

            我在 PHP 中使用 JSON 是因为它非常简单:

            $arr = array('foo' => 'bar', 'animals' => array('cat', 'dog')); // Create any array.
            $json = json_encode($arr); // Converts any array to JSON.
            

            【讨论】:

            【解决方案10】:

            json.org 页面底部有许多(可能是单方面的)JSON 与 XML 文章。

            这里是one

            我通常更喜欢 JSON,因为它更适合我通常要表示的数据,在我的工作中,这些数据可能是顶点、网格等。根据您的数据,XML 可能是一种很好的格式。

            【讨论】:

              【解决方案11】:

              最容易上手的是 XML。 主要原因不是解析(因为有非常好的 XML 和 JSON 库可以为您执行此操作,请参阅其他帖子),而是可理解性:

              JSON 可以与许多不同的括号一起使用,在查看您的 XML 数据时,您可能会更快地看到任何错误。 (假设你知道例如 HTML)

              也可以(但可选)创建XML schema,这样可以轻松地自动验证您的数据。这可以为您节省大量的时间!

              【讨论】:

                猜你喜欢
                • 2021-06-09
                • 2013-08-14
                • 1970-01-01
                • 2012-04-19
                • 2012-04-13
                • 2010-12-02
                • 1970-01-01
                • 2011-06-24
                相关资源
                最近更新 更多