2011-02-13 5 views
1

Googleの優れたGsonライブラリと同様に、Java POJOのシリアル化を可能にするライブラリがあることを期待しています。Google Gsonのようなオブジェクトはコンパクトなバイナリ形式にシリアル化しますか?

しかし、シリアル化されたフォーマットは非常にコンパクトで(個々のUDPパケットに合わせる必要があります)、JSONへのシリアライズは無駄であり、バイナリフォーマットを好むと思います。

そんなことはありますか?

答えて

0

に見ることができるが何日か前、私はJSONの単純なバイナリ表現であることを主張BSONを発見しました。私はこれを試していませんでしたが、よくある質問から、JSON(小数はより多くのスペースを使用します)よりコンパクトではなく、パースして生成するのが簡単です(より速く)。送信するデータ型がわかっている場合、他のプロトコルはこれよりも(少なくともスペースに関して)効率的になる可能性があります。

2

代わりにHessianを使用してください。もう少しのスペースを節約したい場合は、ストリームをデコレートしてくださいGZipOutput/Input Stream

+0

圧縮の問題は、各メッセージを個別に圧縮する必要があることです。 UDPはロッシーでセッションが少ないので、ストリームがいつ始まるか分からないので、複数のパケットを圧縮するのは実用的ではありません。 –

+0

パケットごとに新しいストリームを使用する必要があります。しかし、多くの場合、そのような汎用の圧縮アルゴリズムは、大量のデータに適しています。何かを提供すればベンチマークする必要があります。 –

+0

おそらく、ヘッシアンのビルドを圧縮とメッセージの署名(必要な場合)で使用することをお勧めします。 – altanis

2

デフォルトのシリアル化フォーマットを試しましたか?バイナリですが、クロス言語ではありません。

gzipped JSONが動作する可能性があります。

それとも、protocol buffers

+0

はい、私はプロトコルバッファを認識​​していますが、誰かがGoogle Gsonと同じ方法でPOJOをシリアライズする実装を作成していますか? – sanity