私はフロアプランナーFlex Miniアプリケーションを開発しています。私は、PHPからの応答を生成する際に、JSONまたはXMLがパフォーマンスの面で優れた選択肢になるかどうか疑問に思っていました。私は現在、Javascriptでレスポンスを再利用できるので、現在はJSONに傾いています。私はJSONがXMLよりも構文解析に時間がかかりますが、それは本当ですか? FlexでXML対JSONを使ってデータを扱う際の柔軟性はどうですか?PHPバックエンドを使用したFlexアプリケーションのXMLまたはJSONの応答?
答えて
JSONはネイティブ構造ではありません(奇妙なことに、あなたは{}オブジェクトを簡単にシリアライズできると思うでしょうが、実際はそうではありません)。これは、JSON文字列が解析され、String操作(たとえ、AS3CoreLibを使用している場合でも)によってオブジェクトに変換されている間に、XMLが仮想マシンによってシーンの裏で行われることを意味します...個人的に、私はまた、 JSONEncoderで(ある時点では、配列は単に数値でインデックスされたオブジェクトでした)。
データがAS3オブジェクトに変換されると、オブジェクトの場合よりもXMLのデータを検索して解析するのがさらに高速になります。 XPath式は、データトラバーサルを楽しいものにします(他のものと比較して笑顔になるほど簡単です)。
一方、JSはJSONを解析する方がはるかに優れています。ほんの少し、より良い。しかし、JavaScriptへの移行は「多分...いつか」なので、「JSONの将来の使用は今のところ成果を上げる価値があるのでしょうか」と考えるかもしれません。
しかし、ここには質問がありますが、単に2つの出力がないのはなぜですか。 JSとASはどちらもPOSTに実質的に任意の数の変数を与えることができるので、実際にサーバーが受信しないデータをどのように送信するかについて心配する必要があります。ここでは、この処理するための潜在的な方法です:$ _GET [ 'タイプ']を取得するときに次に
// as you are about to output:
$type = './outputs/' . $_GET[ 'type' ] . '.php';
if(file_exists($type) && strpos($type, '.', 1) === FALSE)
{
include($type);
echo output_data($data);
}
else
{
// add a 404 if you like
die();
}
は、== 'jsが'、js.phpは次のようになります。
function output_data($data){ return json_encode($data); }
$ _GETを取得['type'] == 'xml'、xml。phpはoutput_dataがXMLを表す文字列を返すようなものを保持します(多くの例:here)
もちろん、フレームワークを使用している場合は、代わりにビューでこれを行うことができます「あなたは2つの異なるビューを持ち、MVCを使用する必要があります」)。
いいえ、JSONは、構造が完全に同じでもXMLよりも常に小さいです。また、テキストを解析するコストは、ほとんどターゲットテキストのサイズになります。
JSONはXMLよりも高速です.JavaScript側でJSONを再利用する予定がある場合は、JSONを選択してください。 XML対
ベンチマークJSON: http://www.navioo.com/ajax/ajax_json_xml_Benchmarking.php
あなたはJSONで行く間違いなく、それにJavascriptを使用するつもりなら。どちらも非常に良い構造を持っています。
FlexはJSONをどれだけうまく解析できるかによって異なりますので、その点を検討します。どのくらいのデータを返す予定ですか?エラー/成功メッセージ?ユーザープロファイル?これにはどのような種類のデータが含まれますか?
タグに属性が必要ですか?または単に「構造」。それが属性やそのようなものを必要としていて、 "配列のような"構造に深入りしたくない場合は、XMLを参照してください。
key => value、多次元の場合でもJSONを使用する場合は、
すべては、どのような種類のデータを前後に渡すかによって異なります。それはあなたのためにあなたの決定を下すでしょう:)
ダウンロード時間:
JSON高速です。
Javascriptを解析
JSON
ActionScriptの解析
XMLが高速である高速です。
ActionScriptの内の高度な使用
XMLは、すべてのE4X機能を持つ優れています。 JSONはとして素敵なベクトルの知識は、あなたがアレイに限定されているか
else if (value is Vector.<*>) {
// converts the vector to an array and
return arrayToString(vectorToArray(value));
} else if (value is Object && value != null) {
private function vectorToArray(__vector:Object):Array {
var __return : Array;
var __vList : Vector.<*>;
__return = new Array;
if (!__vector || !(__vector is Vector.<*>))
{
return __return;
}
for each (var __obj:* in (__vector as Vector.<*>))
{
__return.push(__obj);
}
return __return;
}
ような何かをascorelibにJSONエンコーダーをオーバーライドする必要があります。しかし、私は戻ってベクターにそれらの値を取得怖い意味ないと限定されていないです。私は完全なユーティリティクラスをそれに捧げなければなりませんでした。
あなたのオブジェクトがどのように進んでいくかによって、どちらが先に進むのでしょうか。高度な方は、XMLを使ってActionScriptの方が楽になるようにしてください。 シンプルなものgo JSON
JSONと一緒に行きます。 Flash PlayerにネイティブなJSONサポートを追加しました。そのため、XMLと同じように解析側で高速になり、冗長性も小さくなります。
= Ryan [email protected]
- 1. JQueryを使用したPHPの応答
- 2. ebay-sdk-phpを使用したXML Raw応答
- 3. PerlまたはPHPを使用したHTTPマルチパート応答
- 4. [WebMethod]を使用してJSON応答をエスケープしました
- 5. URLEncode用のCitrusフレームワークを使用したJSON応答の解析
- 6. soapuiを使用したXML応答用のGroovyスクリプトアサーション?
- 7. SAXを使用したJavaでのカスタムXML応答の解析
- 8. どのPHP RPC(XMLまたはJSON)ライブラリを使用しましたか?
- 9. Mootoolsを使用したJSON応答のサブ配列の取得
- 10. Rxプログラミング(Moya)を使用したオブジェクトへのJSON応答のマッピング
- 11. 複数のオブジェクトを使用したJSON応答の解析
- 12. AngularJSを使用したJSON応答時のPOSTリクエストの問題
- 13. SoapFormatterを使用したときの無効なXML応答
- 14. jqueryを使用したクロスサイトXML応答の取得
- 15. Hystrix Feignを使用したリクエストと応答のjsonペイロード
- 16. Spring Roo Gvnix。フォームデータパラメータを使用したmvcコントローラリクエストのJson応答
- 17. AS3/Flex/Adobe AIRアプリケーションのストリーミングパーサー(JSON/XML)
- 18. PHPの応答を印刷するにはJSONの応答
- 19. httpurlconnectionを使用してwebserviceのjson応答を処理しました
- 20. PHPを使用した個々の応答時間curl_multi
- 21. Parser JSONが応答するため応答しません
- 22. rtmpsを使用したFlex iOSアプリケーション
- 23. データを抽出するScrapyを使用したJSON応答
- 24. URLからPHPを使用してJSON応答を表示
- 25. CDATAを使用したxml応答用のparams内のhtmlデータの解析
- 26. Laravel GuzzleHTTP JSONへのXMLの応答
- 27. JavascriptでJSONを使用したXMLHTTPREQUEST応答ですか?
- 28. PHPでハンドルxml応答
- 29. モデルでは、JSON応答ZendのPHP
- 30. PHPを使用したXMLからJSONへの変換
私は現在あなたの戦略に傾いています。しかし、どちらの場合でも、データを取得するロジックは同じで、応答タイプのみが異なるため、XMLとJSONの両方の解析で同じ「ビュー」を共有できます。しかし、私が扱うデータはフロアプランに描画されたオブジェクトだけです。だから、各オブジェクトは、幅、高さ、id、その他の単純な1次元属性のような属性しか持たないので、e4xの柔軟性は、もっと複雑なデータセットのために本当に有益ではないでしょう。私は間違っている) – peter
@Peter JSONが本当に問題になる唯一の唯一の時間は、非常に大量のデータを持つ唯一の方法です。 – cwallenpoole
何百万というレコードのような大規模なデータセット?データセットのレコード数は、1〜2千件に過ぎません。 – peter