3

有什么理由我应该选择 JSON 而不是 XML,或者如果两者都可用,反之亦然?在处理数据馈送时优化性能的提示也值得赞赏!

4

4 回答 4

9

谈到 PHP,我选择 XML 而不是 JSON 的一个原因是,即使在 PHP 5 中,也没有官方支持的用于遍历的 API。你可以编码,你可以解码,就是这样。没有验证,没有有效的方法来遍历键/值对,总而言之,对它的支持很少。不要误会我的意思,你可以只使用一个foreach循环结构,但它确实很麻烦。JSON 被吹捧为一种出色的数据交换格式,因为 JavaScript 很容易理解词法结构。所以当你从 PHP 转到 JavaScript 时,它很棒,但是当你从 JavaScript 转到 PHP,或者从 PHP 转到 PHP 时,JSON 并不是数据交换的最佳选择。

于 2008-11-03T16:09:12.420 回答
5

我自己会使用 JSON,只是因为 XML 非常臃肿且难以解析。JSON 小而整洁,因此可以节省带宽,并且还应该加快响应时间,因为它更容易生成、传输更快、解码更快。

于 2008-11-03T16:31:12.657 回答
2

无论你选择哪种方式,当你选择为 IO 序列化数据时,序列化机制应该是透明的、可替换的。如果您发现 JSON 不适合您,您应该能够交换您在正面和背面使用的序列化程序,并且您的数据结构保持不变。

也就是说,我传输的大多数数据数组只是大键值树。我发现当我的数据结构未包装在 XML 序列化中时,它们更容易阅读原始数据结构。

于 2008-11-03T17:51:06.990 回答
1

关于 file_get_contents() 与 cURL 的性能,我相信 cURL 会稍微快一些。对于您的应用程序,您可以运行一些快速基准测试来比较这两种方法。

更重要的是,我更喜欢 cURL,因为 file_get_contents() 不能在实现了更高级别安全性的 PHP 环境中工作(例如,allow_url_fopen设置通常被禁用)。如果您的应用程序只能在您自己的环境(由您控制​​)上运行,那么 file_get_contents() 就可以了,否则我会使用 cURL 以实现可移植性。

于 2008-11-19T17:15:42.197 回答