問題タブ [gob]

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 投票する
1 に答える
1238 参照

json - バイナリ データのブロブを dynamodb に送信する際のエラー

Godynamo を使用して dynamodb インスタンスを管理しようとすると、問題が発生します。

私のコードは、gob でエンコードされたバイト配列を取り、それを dynamodb に入れることを意図しています。

}

ただし、このコードを実行するたびに、次のエラーが発生します。BLOB に変換できません: Base64 でエンコードされた長さは 4 バイトの倍数であると予想されますが、見つかりました: 25

Godynamo は、バイナリ配列が明確に base64 に変換されるように処理しませんか? この問題を処理する簡単な方法はありますか?

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

go - ディスク上のファイルの golang gob に追加

gobエンコードされたデータを単純なデータストアとしてディスク上のファイルに保存しようとしています。ただし、次に開くと、ゴブエンコーダーはファイルに既にあるデータを無視し、データを送信する前に既に送信された形式の定義を送信し始めます。ではなくgob.Encoderがかかるのを見ると、これは理にかなっています。エンコーダーはファイルから読み取ることができないため、ファイルの内容を認識していません。io.Writerio.ReadWriter

ただし、これは非常に非効率的です。また、gob タイプ ID が変更されている可能性があるため、ファイルへの書き込み時にエンコーダーが再起動するたびにデコーダーをリセットする必要があるため、解析が不必要に難しくなります。

gob データを含むファイルの最後まで書き込みを続けるにはどうすればよいですか? 新しいファイルを作成し、すべてのデータを移動して、gob エンコーダーが既に送信した型を認識できるようにする必要がありますか、またはエンコーダーに既に知っておくべき型を伝える方法、または他の方法はありますか? ソフトウェアの再起動後も機能する必要があります。

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

go - ワイヤーをゴブする

ネットワーク プロトコルでデータをシリアル化するために gob ("encoding/gob") を使用することを検討しています。いろいろと調べてみましたが、これらの問題の解決策が見つからないようです。

メッセージのフレーミング - gob のドキュメントは、TCP 接続を gob デコーダーでラップして読み取るだけでよいという印象を与えます。しかし、メッセージを半分しか受信しなかった場合はどうなりますか? gob はどうにかしてこれに対処できますか、それともメッセージ フレームを追加し、メッセージ データを gob のバッファにコピーしてシリアル化を解除する必要がありますか?

さまざまな種類のメッセージ - プロトコルにはさまざまな種類のメッセージがあります。これを gob で処理するにはどうすればよいですか? データのタイプを示すすべての gob blob の前に識別子を付けることによって? すべてのメッセージを、すべての異なるメッセージのフィールドを含む「マスター」メッセージに入れることによって (それを 1 つのタイプのメッセージだけに減らします)? 後者(より単純)を試してみましたが、オーバーヘッドが非常に大きいようです(> 650バイト)。

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

go - gob.Register メソッドの目的は何ですか?

( gob) のドキュメントを読みましたが、いくつか問題があります。

これで、構造をエンコードしてそのようにデコードする方法がわかりました。

しかし、このメソッドの目的がわかりません。gob.Register()誰かがいつそれを使用するのか、そしてその理由を説明できますか?

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

go - Go gob エンコーダーの仕組みを理解しようとしている

ゴブがどのように機能するかを理解したいという私の野心で。いくつか質問があります。

gob が構造体マップやインターフェイスのような go 型をシリアル化することは知っています (実際の型を登録する必要があります) が、:

このドキュメントでは何も理解できませんでした。それらが意味するもの (入力ストリームから次の値を読み取る) は、送信できる 1 つのデータであり、構造体またはマップですが、多くはありません。意味するもの e が nil の場合、値は破棄されます。専門家に説明してください、私は一日中ぼんやりしていて、何も見つかりません

0 投票する
2 に答える
286 参照

encoding - Goでリンクされたデータ構造を永続化またはエンコードする方法は?

私の目標は、リンクされたデータ構造を持つことです。これは、別の構造体への参照を持つ構造体などです。これにより、それをファイル システムにエンコードし、必要なときにいつでもデコードして、全体を復元できます。同じ内容の連結構造。

例:

私はこれらのリンクされた構造を持っています:

私はこのようにそれらを初期化します:

Aをエンコードしてファイルに永続化する方法を知りたいので、同じ結果を得るためにデコードできます。アドレスは重要ではありませんが、コンテンツは重要です。で試しましたがencoding/gob、成功しませんでした:

完全な例: http://play.golang.org/p/2vxHR9BzNy

フィールドを公開せずにこれを行う方法はありますか? 車輪を再発明する必要がない既存の解決策はありますか?

0 投票する
2 に答える
4669 参照

go - Gob デコーダーが EOF エラーを返す

ジョブがバイトとして redis キューにプッシュされるインターフェイス ベースのメッセージ キューを実装しようとしています。しかし、バイト ストリームをデコードしようとすると、EOF エラーが発生し続けます。

https://play.golang.org/p/l9TBvcn9qg

誰かが私を正しい方向に向けることができますか?

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

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

go - エンコーディング/ゴブは決定論的ですか?

gob_encode(x) と gob_encode(y) の出力が常に同じになることを、x が y と等しいような 2 つの Go オブジェクト x、y (インターフェイスとマップにトリッキーさがなく、構造体と配列だけを想定) を期待できますか?

編集 (2018 年 6 月 8 日):

マップが関係している場合、gob エンコーディングは非決定論的です。これは、マップの反復順序がランダムであるため、シリアル化がランダムに順序付けられることになります。

0 投票する
2 に答える
5112 参照

encoding - golangでgobを使用してマップを送信するには?

私のユースケースでは、golang のクライアントからサーバーにマップを送信したいと考えています。オブジェクトのエンコードとデコードに gob パッケージを使用しています。サーバー側では、オブジェクトをデコードできません。

サーバ:

そしてクライアント:

誰かがこれについて私を助けることができますか?

Go バージョン: 1.5 サンプル出力: クライアント:

サーバ: