web-dev-qa-db-ja.com

MongoDBに書き込むためにjson文字列をbsonドキュメントにマーシャリングする方法は?

私が探しているのは Document.parse() と同等です

golangでは、jsonから直接bsonを作成できますか?マーシャリング用の中間Go構造体を作成したくない

11
Ganesh

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)
}
12
TheHippo