例如对于
byt := []byte(`{"num":6.13,"strs":["a","b"]}`)
对该json转码时,注意对json array的断言方式:
var dat map[string]interface{}
if err := json.Unmarshal(byt, &dat); err != nil {
panic(err)
}
fmt.Println(dat)
num := dat["num"].(float64)
fmt.Println(num)
strs := dat["strs"].([]interface{})
str1 := strs[0].(string)
fmt.Println(str1)
可以看到,取array时,首先断言该array是一个[]interface{}数据类型的array(第8行),再断言其中的元素为string类型(第9行),这样就能顺利取出值了。