
获取二维 map 中指定字段值
在 go 语言中,如何获取一个二维 map 中的某个特定字段的值?
代码示例如下:
jmap := make(map[string]interface{})
err := json.unmarshal(util.getbytemsgfromnetconn(conn), &jmap)
if err != nil {
log.println("解析 json 字符串发生错误:", err.error())
conn.close()
}
var usernametmp string
if user, exist := jmap["user"]; exist {
if reflect.valueof(user).kind() == reflect.map {
// 问题出在这里,由于 user 已经断言为 map[string]interface{} 类型,因此不能直接访问其 map[string]string 类型的字段
usernametmp = user.(map[string]interface{})["username"]
}
}如何正确获取 username 字段的值?
答案:
需要对 user 变量进行第二次断言,以将其转换为 map[string]string 类型:
usernameTmp = user.(map[string]interface{})["username"].(string)










