问题标签 [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 - 将二进制数据 blob 发送到 dynamodb 时出错

我在尝试使用 godynamo 管理 dynamodb 实例时遇到了问题。

我的代码旨在采用 gob 编码的字节数组并将其放入 dynamodb。

}

但是,每次运行此代码时,都会出现以下错误。无法转换为 Blob:Base64 编码长度应为 4 字节的倍数,但发现:25

Godynamo 不处理确保二进制数组专门转换为 base64 的问题吗?我有一个简单的方法来处理这个问题吗?

0 投票
1 回答
1214 浏览

go - 在磁盘上的文件中附加到 golang gob

我正在尝试将gob编码数据保存在磁盘上的文件中作为简单的数据存储。但是,当我下次打开它时,gob 编码器会忽略文件中已有的任何数据,并在发送数据之前重新开始发送已发送格式的定义。看到这gob.Encoder需要一个io.Writer,而不是一个io.ReadWriter,这是有道理的。编码器不知道文件中的内容,因为它无法从中读取。

然而,这是非常低效的。它也不必要地难以解析,因为每次编码器在写入文件时重新启动时,您都必须重置解码器,因为 gob 类型 id 可能已经改变。

如何继续写入包含 gob 数据的文件的末尾?我是否必须创建一个新文件,移动所有数据,以便 gob 编码器知道它已经发送了哪些类型,或者我有没有办法告诉编码器它应该知道哪些类型,或者其他方式?我需要它在软件重新启动时工作。

0 投票
1 回答
685 浏览

go - 越过电线

我正在考虑使用 gob ("encoding/gob") 来序列化网络协议中的数据,我一直在四处寻找,似乎找不到任何解决这些问题的方法:

消息框架 - gob 文档给人的印象是您可以简单地将 TCP 连接包装在 gob 解码器中并读取。但是如果你只收到半条消息会发生什么?gob 可以以某种方式处理这个问题,还是我被迫添加一个消息帧并将消息数据复制到缓冲区中以供 gob 反序列化?

不同类型的消息 - 协议有不同类型的消息,如何最好地使用 gob 处理?通过在每个 gob blob 之前有一个标识符来指示数据的类型?通过将所有消息放入包含所有不同消息的字段的“主”消息中(将其减少为仅一种类型的消息)?我尝试了后者(更简单),它似乎有一个巨大的开销(> 650字节)。

0 投票
3 回答
5437 浏览

go - gob.Register 方法的目的是什么?

我已阅读 (gob) 的文档,但遇到了一些问题:

现在我知道如何编码结构和解码:

但是我不知道这种方法的目的,gob.Register()有人可以向我解释什么时候使用它,为什么?

0 投票
1 回答
241 浏览

go - trying to understand how the Go gob encoder works

in my ambitions to understand how gob work . i have severals question .

i know that gob serialize a go type like struct map or interface(we must register it's real type) but :

i didn't understand nothing in this documentation . what they mean by ( reads the next value from the input stream ) they are one data that we could send it's a struct or a map but not many .what they mean by If e is nil, the value will be discarded. please expert explain to me i'am disasperate all day and ididn't find nothing

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 是确定性的吗?

我们能否期望两个 Go 对象 x, y 使得 x 等于 y(假设接口和映射没有技巧,只是结构和数组)gob_encode(x) 和 gob_encode(y) 的输出将始终相同?

编辑(2018 年 6 月 8 日):

当涉及地图时, gob 编码是不确定的。这是由于地图的随机迭代顺序,导致它们的序列化是随机排序的。

0 投票
2 回答
5112 浏览

encoding - 如何在golang中使用gob发送地图?

在我的用例中,我想从 golang 中的客户端向服务器发送地图。我正在使用 gob 包对对象进行编码和解码。在服务器端,我无法解码对象。

服务器:

和客户:

有人可以帮我吗?

Go 版本:1.5 示例输出:客户端:

服务器:

0 投票
1 回答
2520 浏览

go - 如何在 Golang 中不断地使用 gob 倾听客户的声音

在我的用例中,我想持续监听 TCP 连接并接收值。期望值是一个对象。所以我正在使用 gob 解码器从连接中接收值。我想不断地监听连接并使用 go 例程接收对象。我在这里有代码片段[它是应用程序的一部分。代码片段无法编译]。它第一次获得价值,但没有收到后续对象。

有人可以帮我吗?