gopkg.in/mgo.v2/bson
gói có một chức năng được gọi là UnmarshalJSON
điều này thực hiện chính xác những gì bạn muốn.
Dữ liệu data
tham số sẽ giữ cho bạn chuỗi JSON dưới dạng []byte
giá trị.
func UnmarshalJSON(data []byte, value interface{}) error
Ví dụ:
var bdoc interface{}
err = bson.UnmarshalJSON([]byte(`{"id": 1,"name": "A green door","price": 12.50,"tags": ["home", "green"]}`),&bdoc)
if err != nil {
panic(err)
}
err = c.Insert(&bdoc)
if err != nil {
panic(err)
}