登录
首页 >  Golang >  Go问答

将 interface{} 转换为 json 编码中的结构

来源:Golang技术栈

时间:2023-04-02 16:23:25 438浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《将 interface{} 转换为 json 编码中的结构》,主要介绍了golang,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我有这样的代码:http ://play.golang.org/p/aeEVLrc7q1

type Config struct { 
    Application interface{} `json:"application"`
}

type MysqlConf struct {
    values map[string]string `json:"mysql"`
}

func main() {
    const jsonStr = `
        {
            "application": {
                "mysql": {
                    "user": "root",
                    "password": "",
                    "host": "localhost:3306",
                    "database": "db"
                }   
            }
        }`

    dec := json.NewDecoder(strings.NewReader(jsonStr))
    var c Config 
    c.Application = &MysqlConf{}
    err := dec.Decode(&c)
    if err != nil {
        fmt.Println(err)
    }
}

而且我不知道为什么结果结构是空的。你有什么想法?

正确答案

您没有valuesMysqlConf结构中导出,因此json包无法使用它。在变量名中使用大写字母:

type MysqlConf struct {
    Values map[string]string `json:"mysql"`
}

今天关于《将 interface{} 转换为 json 编码中的结构》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于golang的内容请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表