小编典典

强制转换接口{}以json编码进行结构化

go

我有这样的代码: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)
    }
}

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


阅读 280

收藏
2020-07-02

共1个答案

小编典典

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

type MysqlConf struct {
    Values map[string]string `json:"mysql"`
}
2020-07-02