使用gopkg.in/mgo.v2/bson,我想知道如何将 interface{} 值编组为 type 的值bson.Raw。
该文档的bson.Raw状态:
使用这种类型可以部分解组或编组值。
但是我找不到会返回bson.Raw.
我错过了什么?
我尝试做的示例:
package main
import (
"fmt"
"gopkg.in/mgo.v2/bson"
)
func main() {
// How to avoid a MarshalRaw help function?
raw, err := MarshalRaw("Hello world")
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", raw)
}
func MarshalRaw(v interface{}) (*bson.Raw, error) {
bin, err := bson.Marshal(struct{ Raw interface{} }{v})
if err != nil {
return nil, err
}
var raw struct{ Raw bson.Raw }
err = bson.Unmarshal(bin, &raw)
if err != nil {
return nil, err
}
return &raw.Raw, nil
}
输出:
&{种类:2 数据:[12 0 0 0 72 101 108 108 111 32 119 111 114 108 100 0]}
拉丁的传说
忽然笑
相关分类