获取二维 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)
以上就是Go 语言:如何从二维 Map 中获取指定字段的值?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com