を使用してエンコードされたアクションの結果JsonResult
は、シリアライズが過度に冗長に見えます。例えば:
{"foo":"bar","list":["a","b"],"map":{"a":1,"b":2,"c":3}}
JavaScript は、この短いバージョンを同等のものとして完全に満足しているようです。
{foo:"bar",list:["a","b"],map:{a:1,b:2,c:3}}
したがって、この質問は 2 つあります。
すべてのラベルが有効な JavaScript 識別子であると仮定すると、前者の方が優れているという理由はありますか?- ASP.NET MVC フレームワークに、この短い構文を使用してメッセージをエンコードさせることはできますか?
私はかなり AJAX を多用するアプリを作成しており、メッセージ サイズを 15% から 20% 節約できると計算しました。多くの場合、応答を単一の TCP パケットに収めるかどうかの違いになります。パフォーマンスを無視したとしても、毎月の帯域幅の請求額がそれだけ削減されることは恩恵です。
編集
Justin が指摘しているように、JSON 標準では引用符が必要ですが、純粋な JavaScript を使用するブラウザーでは引用符は必要ありません。独自の JSON シリアライザーを作成するよりも簡単な方法で、.NET Web フレームワークに引用符を削除させることはできますか?