问题标签 [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 回答
389 浏览

go - 将int数组转换为字节数组,压缩然后反转

我有一个大的 int 数组,我想保留在文件系统上。我的理解是存储此类内容的最佳方法是使用gob包将其转换为字节数组,然后使用gzip对其进行压缩。当我再次需要它时,我会反转这个过程。我很确定我正确地存储了它,但是用 EOF 恢复它失败了。长话短说,我在下面有一些示例代码来演示这个问题。(游乐场链接在这里https://play.golang.org/p/v4rGGeVkLNh)。我不相信 gob 是必需的,但是阅读它似乎将它存储为字节数组比 int 数组更有效,但这可能不是真的。谢谢!

0 投票
0 回答
430 浏览

go - 我注册了类型,但仍然收到错误“gob:类型未注册接口:”

我似乎无法弄清楚为什么自定义结构没有使用 encoding/gob 注册

当我尝试保存 Gorilla 会话时会发生此错误:

这是结构

我正在使用 init() 函数注册结构

在身份验证函数中,我尝试保存包含实体的会话。

这是错误的服务器日志:

不同的变体:
gob.Register([]*baseball.Athlete) ==> 错误:类型 []*baseball.Athlete 不是表达式

附带问题,你会怎么说 "[]*baseball.Athlete" ?

我猜,“切片是指向 structball.Athlete 的指针”

0 投票
1 回答
1108 浏览

go - 尝试使用 gob.Decoder() 解码 blob 时出现错误(gob:未知类型 id 或损坏的数据)

我正在尝试将编码的 blob 发送到本地对等点列表(在本地机器上的多个端口上侦听的客户端代码),当我为某些对等点解码 blob 时,在对等点上它可以工作,但对于某些它不并显示错误(gob:未知类型 id 或损坏的数据),我该如何解决?

0 投票
1 回答
2180 浏览

go - 在 go 中按顺序将 protobuf 消息写入文件

我有大量类似的对象(大约数百 GB),我需要对其进行序列化并按顺序写入文件,然后以相同的顺序读取它。如何在golang的protobuf(gogo proto)中做到这一点?Gob 有一个可以写入 io.Writer 的编码器,但 protobuf 没有类似的东西。可能是 protobuf 不是为此目的的最佳选择?我需要良好的性能和低内存分配。

0 投票
0 回答
124 浏览

go - 在 struct -> []byte -> gob -> gzip -> IO -> gzip -> gob -> []byte -> struct 之后存储到磁盘

我正在尝试将结构,或更准确地说是将结构的字节存储到磁盘。我有大量字节数据,我想压缩并存储在磁盘上并稍后恢复。这些数据对除我之外的任何其他应用程序没有任何意义。

我可以用 Gob 编码一个结构([]bytes of)并用 gzip 压缩它。我还可以解压缩结果数据。但是,当我尝试将 []byte 数据转换回失败的结构时-失败是一个奇怪的失败...不是错误,当我tmp从函数中打印出来时,我得到

然而我开始的结构是

这是我的功能

我做错了什么,以便在取消数据后我不会将数据取回?

编辑: 我已经添加了代码,因为它现在在这个要点上运行,并带有一个测试文件,该文件演示了压缩后丢失的数据

0 投票
0 回答
74 浏览

json - 将 json 或 gob 解组到具有接口字段的 Go 结构

我有一个结构,其中 merkleTree.MerkleProof 是一个由 mTree.Proof 实现的接口:

我正在将 Checkpoint 结构(在 MerkleProof 字段中带有 Proof 结构)编码为带有 JSON 或 Gob 的文件,一切顺利;数据编码正确。

当我去解码相同的编码数据时,我收到以下错误:

Gob 给出了类似的错误。如何让解码器识别 Proof 结构实现 MerkleProof 并且可以存储在字段中?

0 投票
0 回答
165 浏览

go - 使用gob在Golang中进行通用数据解码,无法从通用接口中获取价值

我想为从生产者解析的任何原始数据类型编写通用解码代码。

生产者使用以下代码对数据进行编码:

在客户端,我需要查询元数据表以获取数据类型,然后进行相应的解码,下面是我的代码:

在这种情况下,我已经收到错误消息,要么是 Interface is nil 要么

谁能帮我解释为什么以及如何编写这个通用代码来提取数据类型?

0 投票
1 回答
752 浏览

go - Golang 将 gob 字符串转换为接口

我正在制作一个 go 程序,我需要将 gob 写入文件。我使用 .String() 方法将 gob 转换为字符串。

然后我将 gob 写入一个文件,稍后我将检索它并将其发送到这个程序:

但是当我运行它时,它给了我这个错误:

gob:编码的无符号整数超出范围

我认为问题在于解码器程序的前两行。那么我应该放什么来正确解码gob?

编辑:我想要的是 gobString 的 .UnString() 方法。我怎样才能做到这一点?

0 投票
0 回答
229 浏览

go - 类型为 interface{} 的 golang RPC 结构嵌套在回复 *Struct 中

我想知道是否可以启动一个带有回复指针的 RPC,该指针指向一个看起来像

就我而言,我收到了错误:

其中 NSReply.Reply 的类型是 paxos.PrepareReply。我很新,所以我不太熟悉golang的gobs是如何工作的,我不确定我正在尝试做的事情是否被允许,但我找不到任何关于它是否是的信息。目的是允许我在 NSReply.Reply 中传递许多不同类型的结构作为有效负载。

0 投票
0 回答
60 浏览

go - gob 反序列化在嵌套结构上无法正常工作

我正在编写一个 rpc 调用流程。当我使用tcp读写时,我发现另一个嵌套结构问题。我创建了一个请求和响应对象,其中包含一个traceId和struct请求对象或返回对象结构,但是当我在服务器上写回客户端的响应对象时,我无法在客户端gob反序列化上得到正确的回复对象实体可以只获取traceId。我想问这是什么原因。代码如下在这里输入图片描述