問題タブ [binary-serialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2829 参照

java - java.lang.class のシリアル化

DB での Class オブジェクトの永続化に問題があります。

オブジェクトを使用してオブジェクトをバイト配列に変換しようとしましたObjectArrayOutputStreamByteArrayOutputStream以下に示すように、バイト配列を永続化しました。

しかし、以下に示すエラーが表示されます。

バイト配列の構築方法に問題があると思います。.classしかし、クラス オブジェクトに相当するものを正しく作成する方法がわかりません。

0 投票する
1 に答える
1075 参照

.net - .net シリアル化: データ フィールドを選択的に無視する方法

の。フィールドをシリアル化不可としてマークすると、シリアル化中にスキップされます。

特定のフィールドをシリアル化する必要があるかどうかを実行時に制御できる簡単な方法を探しています。

0 投票する
1 に答える
541 参照

c# - 回線経由の Silverlight バイナリ シリアル化

新しいリリースがほぼ完成している間、WCF サービスが Silverlight クライアントに返す大きなサイズの XML データを無視してきました。現在、結果が 10 ~ 100 MB の範囲にならないように、データを圧縮する方法を調査しています。

バイナリ シリアライゼーションが解決策であることは明らかであり、SharpSerializer などを使用してデータをバイナリにシリアライズするのは簡単に思えますが、バイナリ シリアライゼーションに関するすべての SO 投稿や、私が遭遇した他のチュートリアルでは、誰も対処していません。シリアル化されたデータをネットワーク経由でクライアントに送信する方法。私は、WCF サービス パズルの明白ではあるが重要な部分を見逃していると思います。

うまくいけば、誰かが私に助けを貸してくれます。さらに情報を含める必要がある場合はお知らせください。

0 投票する
1 に答える
1056 参照

c# - C++ をシリアライズし、C# クラスにデシリアライズするプロトコル バッファ

C++ でクラスをシリアライズし、プロトコル バッファを使用して C# で同様のクラスにデシリアライズすることは可能ですか? さまざまなプラットフォームでこのシリアル化の問題を解決するために Json シリアル化を試みましたが、配列リストなどの一部のデータ型に問題があります。Google のプロトコル バッファの使用に関するアドバイスはありますか?

0 投票する
1 に答える
135 参照

image - ハッシュテーブルを含むリストをシリアライズする

文字列とハッシュテーブルを持つクラスがあります。ハッシュテーブルには、キー(文字列)値のセットと各キー属性のビットマップファイルが含まれています。これをバイナリファイルにシリアル化するにはどうすればよいですか?

//詩クラス

しかし、これは常にエラーを生成します。

0 投票する
1 に答える
1190 参照

c# - .netのバイナリシリアル化/逆シリアル化オブジェクトのグラフサイズに制限はありますか?

たとえば、私は持っています:

そのリストにクレイジーな量のオブジェクトを追加するので、サイズは最大10Gbs以上になります。メモリ不足などのエラーなしでlstをシリアル化できますか?後で逆シリアル化できますか?

0 投票する
6 に答える
12129 参照

c# - クラスのソース コードがない場合、オブジェクトの .NET バイナリ シリアル化を行うことは可能ですか?

BinaryFormatterC# でいくつかのオブジェクトのバイナリ シリアル化を行うために使用しています。ただし、一部のオブジェクトには、DLL を介してアクセスするクラスが含まれており、そのソース コードがないため、それらをSerializable属性でマークすることはできません。とにかくそれらをシリアル化する簡単な方法はありますか? クラスを取得して、コンストラクターがオブジェクトを取得し、そこから必要なすべての情報を抽出NoSourceする新しいクラスを作成することを含む回避策がありますが、それはハッキーです。より良い代替手段はありますか?SerializableNoSourceNoSource

0 投票する
1 に答える
11479 参照

xml - バイナリシリアル化vs.JSONvs. xml

データ構造に小さな(文字列)フィールドがたくさんある場合、バイナリシリアル化とJSONとxmlを使用し、ネットワーク経由でデータを送信すると、時間の観点からパフォーマンスがほぼ向上することを誰かが知っていますか?

シリアライザーはどの程度パフォーマンスに責任がありますか?プログラミング言語はどうですか?

完璧な風景とは、移植性の問題を無視し、3つの形式すべてとの間でシリアル化/逆シリアル化するために必要なライブラリを自由に使用できると想定している風景です。

0 投票する
3 に答える
4287 参照

java - Java partial (de)serialization of objects

Let's say we have 3 Classes:

Now we create instances

After that we want to store them serilazed in a file. If we deserialze theBaz, modify onlyFoo and deserialize theBaz to the file again, theBar still contains the original onlyFoo, so there are two different versions of onlyFoo.

What I want instead is that I store theBaz and theBar without onlyFoo, store the three objects separately and once someone deserialize theBaz I want to give him onlyFoo, too. If he deserializes the changed onlyFoo again, theBaz and theBar will have the same modified onlyFoo, so if someone requests an object (for example theBar) he gets the full serialized object with all the referenced objects (onlyFoo) like the normal serialization process would return.

デフォルトのシリアル化ではこの問題を処理できないため、オブジェクトを保存し、参照を手動で個別に保持する必要があることはわかっています。私が知らないのは、Java オブジェクトを部分的にシリアライズ/デシリアライズする方法です。プリミティブとそのラッパーを「より高い」オブジェクトから分離し、このオブジェクトを別々に保存する必要があります。

アップデート

  1. クラスを変更することはできません。
  2. すべてのクラスを知っているわけではありません。おそらく聞いたことのないすべてのシリアライズ可能なオブジェクトで動作するはずです(それらは最終的である場合とそうでない場合があります
0 投票する
2 に答える
428 参照

.net - バイナリストリームの破損の考えられる原因は何ですか?

バイナリシリアル化の方法を学ぼうとしています。

この例外は、以前にシリアル化したオブジェクトを逆シリアル化しようとするたびにスローされます。

これは私のクラスのヘッダーです:

これはGetObjectDataメソッドであり、同じクラス内でpublicとして設定されています。

これは、逆シリアル化に使用されるコンストラクターです。

そして、これは私がファイルを開いて逆シリアル化しようとするコードのブロックです。ファイルが存在しない場合は、データを入力するための新しいダイアログが表示され、ファイルがシリアル化されます

現在、例外メッセージは、考えられる原因が、シリアル化と逆シリアル化の間の無効なストリームまたはオブジェクトのバージョン変更であると示しています。シリアル化と逆シリアル化の間でクラスに触れていないので、問題はストリームにあると推測しています。ストリームは無効です(または他の何かです!?)。

誰かが私を正しい方向に向けてください、それは大いにありがたいです。:)