我正在尝试使用以下数据库API:https://godoc.org/github.com/syndtr/goleveldb/leveldb# (基于简单文件的键/值DB)
我能够将“密钥”放入数据库。 但是,我想知道值是否可以是一个结构,如:
type Thm struct {
Name string
Age int
}
然后,
var Tmp Thm
Tmp.Name = "Gon"
Tmp.Age = 33
db.Put([]byte("test3"), []byte(Tmp), nil)
现在,我得到的错误是“无法将Tmp(类型Thm)转换为[]字节类型。
如果您有使用levelDB的经验,可以帮助我完成这项工作的正常程度吗? 或者,我应该将struct转换为byte以使其工作吗?
谢谢
答案 0 :(得分:0)
levelDB
仅支持字符串/字节数组作为键和值。这实际上是一个非常智能的功能,因为它在应用程序级别保持复杂数据结构的序列化。要序列化Thm
结构,如果您不需要其他语言的应用程序来读取值,可以尝试gob package,如果需要序列化数据,可以尝试使用protobufs,json或msgpack可以访问其他语言。