構造体の配列がinterface{}
パラメータに渡されたときに、構造体の配列にデータを書き込む最良の方法はUnmarshal
です。bson byte []Goで、bson byte []データを構造体の配列にアンマーシャリングする方法はありますか?
デモンストレーションの目的で、次のコードでは、タイプのデータを取得するためにinStructArr
にbson.Marshal()
を使用します。これはを使用してoutStructArr
にパイプするためです。私はこれを行うと
import "gopkg.in/mgo.v2/bson"
type User struct {
Name string
}
func DecodeArrData(inStructArr, outStructArr interface{}) {
inStructArrData, _ := bson.Marshal(inStructArr)
bson.Unmarshal(inStructArrData, outStructArr) // <-- Error happens here
// What's the right way of accomplishing this?
}
func Main() {
outUsers := &[]User{}
inUsers := []User{User{"A"}, User{"B"}}
DecodeArrData(inUsers, outUsers)
}
、私が取得エラーメッセージは次のとおりです。Unsupported document type for unmarshalling: []User
。これを行う正しい方法は何ですか?
ありがとうございます!