3

両方が利用可能な場合、XML よりも JSON を選択する必要がある理由、またはその逆を選択する必要がある理由はありますか? データ フィードを処理する際のパフォーマンスを最適化するためのヒントも大歓迎です。

4

4 に答える 4

9

PHP に関して、JSON よりも XML を選択する理由の 1 つは、PHP 5 でさえ、トラバーサル用に公式にサポートされている API がないためです。エンコードすることも、デコードすることもできます。それだけです。検証はなく、キーと値のペアをトラバースする効率的な方法もありません。全体として、それに対するサポートはほとんどありません。誤解しないでください。foreach ループ構造を使用することもできますが、実際には面倒です。JavaScript は字句構造を簡単に理解できるため、JSON は優れたデータ交換形式としてもてはやされました。したがって、PHP から JavaScript に移行する場合は優れていますが、JavaScript から PHP、または PHP から PHP に移行する場合、JSON はデータ交換に最適な選択肢ではありません。

于 2008-11-03T16:09:12.420 に答える
5

XML は非常に肥大化し、解析が非常に難しいため、私自身は JSON を使用します。JSON は小さくてすっきりしているため、帯域幅を節約できます。また、生成が簡単で、送信が速く、デコードが速いという理由だけで、応答時間も短縮されます。

于 2008-11-03T16:31:12.657 に答える
2

どの方法を選択しても、IO 用にデータをシリアル化する場合、シリアル化メカニズムは透過的で置き換え可能でなければなりません。JSON がうまくいかないことがわかった場合は、前面と背面で使用するシリアライザーを交換するだけで、データ構造は同じままです。

とはいえ、私が送信するデータ配列のほとんどは、単純に大きなキーと値のツリーです。データ構造が XML シリアライゼーションでラップされていない場合、生のデータ構造を読み取る方が簡単であることがわかりました。

于 2008-11-03T17:51:06.990 に答える
1

file_get_contents() と cURL のパフォーマンスについては、cURL の方が若干速いと思います。あなたのアプリケーションでは、いくつかの簡単なベンチマークを実行して、2 つのアプローチを比較できます。

さらに重要なことに、file_get_contents() は、より高いレベルのセキュリティが実装されている PHP 環境では機能しないため (たとえば、allow_url_fopen設定は通常無効になっています)、cURL を使用することをお勧めします。アプリケーションが自分の環境 (自分で制御する) でのみ実行される場合は、file_get_contents() で問題ありませんが、それ以外の場合は、移植性のために cURL を使用します。

于 2008-11-19T17:15:42.197 に答える