请问下:
下面的示例代码中,为什么第二种断言才能成功,第一种断言不成功?
```
json1 := `[{"aa":"astr1"},{"aa":"bstr1"}]`
var j1 []interface{}
json.Unmarshal([]byte(json1), &j1)
for k, v := range j1 {
fmt.Println(k, reflect.TypeOf(v).String())
if v2, ok := v.(map[string]string); ok {
println("断言成功")
println(v2["aa"])
} else if v2, ok := v.(map[string]interface{}); ok {
fmt.Println("键值为interface:")
fmt.Println(v2["aa"])
} else {
fmt.Println("失败:")
}
}
```
有疑问加站长微信联系(非本文作者)