什么更好:Json或XML(PHP)

时间:2009-07-12 20:19:01

标签: php xml json

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

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

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

11 个答案:

答案 0 :(得分:39)

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

选择哪一个时,它实际上取决于您的应用。如果您要将数据传递给JavaScript以便在客户端进行处理,那么我建议使用JSON。 IMO,XML更适合系统之间的数据交换,因为它非常易于理解和人类可读(使解释更容易)。由于没有结束标记,JSON在线上较小。

答案 1 :(得分:8)

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

答案 2 :(得分:8)

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

哪一个最容易?
jQuery使您可以轻松地将JavaScript对象序列化为JSON对象。

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

以下是其他一些文章:

答案 3 :(得分:4)

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

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

XML拥有庞大的生态系统,其中包含大量现成工具:用于检查XML文档是否有效的各种模式,转换语言,用于导航文档的XPath等等。在这方面也缺乏JSON。

XML比JSON复杂得多。编写自己的JSON解析器非常简单有趣,但是编写XML解析器是huge undertaking(当然不适合那些不熟悉XML的人)。在Javascript中,可以通过评估文本来解析JSON(尽管这非常不安全)。

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

答案 4 :(得分:3)

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

如果你确定你将使用Javascript并且从不拥有​​任何其他类型的客户端(另一个网站,一个Flash / Flex客户端,无论如何),那么JSON很棒,也许不那么轻松。另一方面,如果您需要通过XML工作,那么现在使用XML可以节省您的时间。

无论如何,一件好事是检查Google员工使用LiveHTTPHeaders进行Gmail或其任何应用程序的操作。我很确定它是XML而不是JSON,但你可以检查我。在所有情况下,做Google所做的事情可能被认为是“没有思考”,但他们通常比我更聪明,并且还有更多的人工时间来思考:)

答案 5 :(得分:3)

这取决于。

示例:您希望将应用程序置于大型上下文(EAI)中,然后您应该使用XML(可能是Webservices& WSDL)。

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

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

如果您还没有使用过,那么请转到JSON。到目前为止的答案是正确的,因为这两者都有很多帮助,你可以很快地起床和运行。 JSON具有额外的优势,即不像XML那么臃肿,并且可以在客户端轻松地“翻译”为javascript

答案 8 :(得分:1)

我在PHP中使用JSON是因为它有多么简单:

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

答案 9 :(得分:0)

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

这是one

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

答案 10 :(得分:0)

最容易开始的是XML。 这个的主要原因是没有解析(因为有非常好的用于XML和JSON的lib,为你做这个,请参阅其他帖子),但可理解性:

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

也可以(但可选)创建XML schema,这样可以轻松验证您的数据。这样可以节省你很多时间!