我有以下代码package mainimport ( "encoding/json" "fmt" "labix.org/v2/mgo" "labix.org/v2/mgo/bson")func insertEntry(j *map[string]interface{}, entry string) { err := json.Unmarshal([]byte(entry), j) if err != nil { panic(err) }}func main() { c1 := `{ "mw" : 42.0922, "ΔfH°gas" : { "value" : 372.38, "units" : "kJ/mol" }, "S°gas" : { "value" : 216.81, "units" : "J/mol×K" }, "index" : [ {"name" : "mw", "value" : 42.0922}, {"name" : "ΔfH°gas", "value" : 372.38}, {"name" : "S°gas", "value" : 216.81} ] }` c2 := `{ "name": "silicon", "mw": 32.1173, "index": [ { "name": "mw", "value": 32.1173 } ] }` var m map[string]interface{} insertEntry(&m, c1) insertEntry(&m, c2) chemical := m["ΔfH°gas"].(map[string]interface{}) fmt.Println("value: ", chemical["value"].(float64)) fmt.Println("units: ", chemical["units"].(string)) session, err := mgo.Dial("localhost") if err != nil { panic(err) } defer session.Close() // Optional. Switch the session to a monotonic behavior. session.SetMode(mgo.Monotonic, true) c := session.DB("test").C("chemicals") err = c.Insert(&m) if err != nil { panic(err) } result := &m err = c.Find(bson.M{"name": "silicon"}).One(&result) if err != nil { panic(err) } fmt.Println(result) fmt.Println("mw:", result.mw)}并得到以下错误$ go run chemeo.go# command-line-arguments./chemeo.go:78: result.mw undefined (type *map[string]interface {} has no field or method mw)我怎么能打印出 mw?
- 2 回答
- 0 关注
- 221 浏览
添加回答
举报
0/150
提交
取消