【发布时间】:2017-01-12 14:47:53
【问题描述】:
我正在编写一个小型应用程序,它从网络(不是 MongoDB)接收 BSON 格式的消息,并且必须将字段保存在本地机器上的文件中。我正在使用 gopkg.in/mgo.v2/bson 进行消息解组,它工作正常。
除了一个之外,几乎所有东西都可以工作。消息中有“用户定义”二进制字段,我必须将其保存到单独的文件中。我尝试使用:
var pwr = msg["pwr"].([]byte)
但出现“错误恐慌:接口转换:接口是 bson.Binary,而不是 []uint8”。
谁能给我举个例子,如何将 bson.Binary 转换为 []byte,以便我可以将其保存到文件中。
【问题讨论】:
-
如果您查看文档,
bson.Binary是一个结构。 -
是的。但是在编译时访问 pwr 的 Data 字段会产生错误“pwr.Data undefined (type interface {} is interface with no methods)”。
-
这意味着
msg必须是map[string]interface{}。请创建一个完整的示例,这样我们就不会在这里猜测类型或上下文。 -
这个问题是 5 小时前刚刚发布的,详细介绍了如何访问
interface{}:Having trouble accessing a key in a map inside an interface 中的包装值。 -
JimB,对不起,我是新手。我虽然答案是微不足道的。 icza 谢谢你的意见 - 它有帮助。