早些時候我發(fā)布了這個問題,詢問有關使用 mgo 在 Go 中編寫自定義 BSON 編組/解組的問題。現在我來測試它,我想我遇到了一個更大的問題。我所有的結構都解組為 nil 值。這是我的貨幣結構與 bson.Getter 和 bson.Setter 的實現:type Currency struct { value decimal.Decimal //The actual value of the currency. currencyCode string //The ISO currency code.}/*GetBSON implements bson.Getter.*/func (c Currency) GetBSON() (interface{}, error) { f, _ := c.Value().Float64() return bson.Marshal(struct { Value float64 `json:"value" bson:"value"` CurrencyCode string `json:"currencyCode" bson:"currencyCode"` }{ Value: f, CurrencyCode: c.currencyCode, })}/*SetBSON implements bson.Setter.*/func (c *Currency) SetBSON(raw bson.Raw) error { decoded := new(struct { Value float64 `json:"value" bson:"value"` CurrencyCode string `json:"currencyCode" bson:"currencyCode"` }) fmt.Println(string(raw.Data)) bsonErr := raw.Unmarshal(decoded) if bsonErr == nil { fmt.Println("Debug: no error returned.") fmt.Println(decoded) c.value = decimal.NewFromFloat(decoded.Value) c.currencyCode = decoded.CurrencyCode return nil } else { return bsonErr }}通過查看原始數據,它可以正確編組,但是在解組時,結果結構只是空的。我在這里出錯的任何想法?我go get gopkg.in/mgo.v2昨天確實使用了這個命令,所以我希望它是最新的,并且像這樣的錯誤不會出現在“最熱門的 MongoDB 驅動程序”中。
- 1 回答
- 0 關注
- 188 瀏覽
添加回答
舉報
0/150
提交
取消