登录
首页 >  Golang >  Go教程

Go 语言:如何从二维 Map 中获取指定字段的值?

时间:2024-11-06 17:12:48 336浏览 收藏

golang学习网今天将给大家带来《Go 语言:如何从二维 Map 中获取指定字段的值?》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

Go 语言:如何从二维 Map 中获取指定字段的值?

获取二维 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 中获取指定字段的值?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>