2012-01-11 12 views
4

JSON.parseを解析するjson形式のデータがあります。私が持っている問題は、小文字名の長さにあります:変数名を短縮してJSON文字列サイズを小さくする

MyObjectName.SuperLongPropertyName; 
MyObjectName.AnotherLongPropertyName; 

などです。私はjsonを生成するためにJavascriptSerializerとカスタムJavascriptConverterを使用しています。それはいくつかのajax呼び出しで使用され、データは約70Kです。しかし

、私はJSON文字列の半分の大きさを剃り落とすことができ

a.a; 
    a.b; 

に変数を変更することができれば。

私は簡単にサーバー上のシリアル化/逆シリアル化クラスを変更することができます。しかし、クライアントサイドでは、これらのオブジェクトを私のコードのどこでも使用しているので、もっと難しいでしょう。そして、変数名を変更しても、JavaScriptデバッガでデバッグするのは非常に難しいコードになります。

a)クライアント上の既存の変数名を変換し、b)読みやすさとデバッグ性を維持するための良い提案は何ですか?

ありがとうございました。

+0

実際の質問は、なぜあなたは短いjson文字列をしたいですか?多くのデータを送信していますか? 70kはそれほどショッキングなものではありません – hoppa

+0

プロパティ名と短い名前のソートされたマップ(発生回数別)を構築できます。それらの短い名前でjsonを書き直して、マップ+ jsonを送信してください。 ;) – Yoshi

答えて

7

transparent HTTP gzip compressionを使用してください。サーバーは送信されたデータをオンザフライで圧縮し、Webブラウザはそれを再度デコードします。

gzipはあなたの提案とまったく同じです、のみがより良いです。 Gzipはいくつかの長い繰り返し名に対して静的エイリアスを選択するのではなく、すべての名前のエイリアスを選択し、最短の名前をエイリアスに割り当てます。また、gzipは構文を気にしないので、, "SuperLongName": {(句読点やスペースを含む)を1つのシンボルに割り当てることができます。

+0

ok、これが紺色でどのように機能するかを見てみましょう...私はよりプログラム的なオプションを望んでいましたが、gzipは結局よりうまくいくかもしれません。 – frenchie

関連する問題