2011-01-26 6 views
4

C#でREST APIからデータをリクエストしています。 APIは私にJSONとXML形式の同じデータを提供します。C#でAPIをリクエストするために選択する必要があるフォーマット - JSONまたはXML

どちらを選択すればよいですか? JavaScriptでどちらを選択するかはclearです。 しかし、C#では何ですか? C#または他の実践的な理由で、どちらかを選ぶのに役立つパフォーマンス上の利点はありますか?

ありがとうございます!

答えて

5

個人的に私はパフォーマンスを測定し、比較し、より速いものを選びます。アプリケーションロジックの観点からは、XMLやJSONではなくオブジェクトを操作するため、これは重要ではありません。 XML/JSONのオブジェクトへの変換は、最初に選択したものが遅いか、それがうまくいかないと感じたら、目の瞬きの中で別の実装に置き換えることができるリポジトリに抽象化する必要があります君は。

+0

私はここで運がなければ、それは私の次の行動コースです) –

+0

私は今、いくつかのパフォーマンステストを行うつもりです。デザインの観点から本当に問題がなければ、私は自分の状況のた​​めに一番速く行くつもりです。ありがとう! –

+0

@MartinBuberl - あなたはパフォーマンステストを行ったことがありますか?結果を投稿する心と、あなたがテストに使ったパーサーは何ですか? – hofnarwillie

1

C#では、JSONまたはXMLからオブジェクトを逆シリアル化できます。

一般的に、XMLはJSONよりも冗長になります。

小さなデータセットを取り戻す場合、それほど大きな違いはありませんが、データセットが大きい場合は、冗長度の低いJSONがより迅速に転送される可能性があります。

私はそれぞれのサンプルを取り出して比較したいと思います。

1

個人的には、C#のXMLシリアル化フレームワークはJSONサポート(実際には2つの異なる.NETフレームワークがあります)よりも成熟し、より豊富な機能セットを持っています。しかし、JSONははるかに簡潔なので、トラフィックの重さなど、ロードの特性に依存します。

0

JSONとXMLのどちらも、あらゆる言語のライブラリがたくさんあるため、解析/生成が容易ですここではあまり関係ありません。 JSONは、両方のあなたがスピードに実際にあるならば、私はあなたがチェック勧めalmost the same

あるGoogleのをgzip圧縮されたときに(あなたはXML属性はなく、純粋な要素のアプローチを使用していない特別な場合)、小さくなるように思われるけれどもまた

protocol buffers。そうでない場合は、実際には味の問題です。そのAPIにAJAX呼び出しを行う予定がない限り、その場合はJSONを間違いなく選択します。

+0

私はそのプロトコルのバッファリンクが好きです。私はそれを完全に見てみましょう!たとえそれがこのプロジェクトのオプションではないとしても。ありがとう! –

1

おそらくデバッグ中に、生API応答を検査したり表示したりすることができます。その場合は、読みやすい形式を選択した方がよいでしょう。

1

のパフォーマンス特性を判断するには、両方を測定する必要があります。

は、それは明らかだために私自身の使用法では、私は、JSONで「クロスプラットフォーム」の利点を始めたが、Silverlightの/ C#で大きなデータセットに主要スローダウンを取得した後、XMLと一緒に行くことを余儀なくされた(これはバグとして報告されましたすべてが数秒間フリーズする私のモジュールの1つです。その減速は、使用した大規模なデータセットのJSON逆シリアル化になりました)。 XMLに切り替えると、gzip圧縮解除が追加されていても、ダウンロードが増えました(この時点ではgzip圧縮が計画されていましたが、これに対処するために追加されました)。

+0

あなたの状況は良い点です!他の多くの事のように、私はそれが依存すると思います。ちょうどいくつかのベンチマークを期待した;) –

+0

サーバー側のXML処理には、ブラウザよりも多くのオプション(パフォーマンス、成熟度など)があります... –

関連する問題