私が探しているのは Document.parse() と同等です
golangでは、jsonから直接bsonを作成できますか?マーシャリング用の中間Go構造体を作成したくない
gopkg.in/mgo.v2/bson
パッケージには、 UnmarshalJSON
という関数があり、これはまさにあなたが望むことを実行します。
data
パラメーターは、JSON文字列を[]byte
値として保持する必要があります。
func UnmarshalJSON(data []byte, value interface{}) error
UnmarshalJSONは、BSONの拡張JSON仕様で定義されている非標準の構文を保持する可能性のあるJSON値をアンマーシャリングします。
例:
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)
}