データ交換の2つの実際の選択肢は、XMLとJSONです。私は両方を幅広く扱ってきましたが、最近ではJSONが私の最初の選択肢です。
2つのうち、JSONは1つを除くすべての考慮事項でXMLよりも優れていると思います。JSONはよりスリムで読みやすくなっています。目立たないデータ単位にラベルを適用することを目的としているため、データ形式の表現に適しています。JSONパーサーは、作成がはるかに簡単で、必要なコードもはるかに少なくなります。JSONがサポートする限られたタイプのセットは、データ交換に最適であることがわかりました。JSONは、ドキュメントのマークアップを許可するためのレガシーセマンティクスに悩まされることはありません。
さらに、クライアントがJavaScriptを使用している場合、JSONのサポートは本質的です。
XMLの唯一の利点は、この形式のデータを操作するためのより多くのより優れたツールが存在する可能性があることです。ただし、JSONは、ツール自体を必要としないほど単純であると言わなければなりません。
3番目の選択肢は、URLエンコードされたキーワードと値のペアですが、これは制限が多すぎることにすぐに気付くと思います。
ちょうど私の200セント。
参照:http ://www.json.org/
また、私の軽量のオープンソースの障害のないJSONパーサーにも興味があるかもしれません。
編集:2010-08-10 00:43
JS evalを使用することのセキュリティに関するコメントに応えて、JSONWebサイトからの次の抜粋が興味深いかもしれません。
JSONテキストをオブジェクトに変換するには、eval()関数を使用できます。eval()はJavaScriptコンパイラを呼び出します。JSONはJavaScriptの適切なサブセットであるため、コンパイラーはテキストを正しく解析し、オブジェクト構造を生成します。JavaScriptの構文のあいまいさにつまずかないように、テキストは括弧で囲む必要があります。
var myObject = eval('(' + myJSONtext +')');
eval関数は非常に高速です。ただし、JavaScriptプログラムをコンパイルして実行できるため、セキュリティ上の問題が発生する可能性があります。evalの使用は、ソースが信頼され、有能である場合に示されます。JSONパーサーを使用する方がはるかに安全です。XMLHttpRequestを介したWebアプリケーションでは、通信はそのページを提供する同じオリジンにのみ許可されるため、信頼されます。しかし、それは有能ではないかもしれません。サーバーのJSONエンコーディングが厳密でない場合、またはサーバーがすべての入力を綿密に検証しない場合、危険なスクリプトを運ぶ可能性のある無効なJSONテキストを配信する可能性があります。eval関数はスクリプトを実行し、その悪意を解き放ちます。
これを防ぐには、JSONパーサーを使用する必要があります。JSONパーサーはJSONテキストのみを認識し、すべてのスクリプトを拒否します。ネイティブJSONサポートを提供するブラウザーでは、JSONパーサーもevalよりもはるかに高速です。ネイティブJSONサポートは次のECMAScript標準に含まれる予定です。