我有这样的代码: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) } }
而且我不知道为什么结果结构为空。你有什么想法?
您没有values在MysqlConf结构中导出,因此json程序包无法使用它。在变量名中使用大写字母可以:
values
MysqlConf
json
type MysqlConf struct { Values map[string]string `json:"mysql"` }