我正在编写一个解析配置 JSON 文件并使用 json.Unmarshal 将其数据存储在结构中的函数。我做了一些研究,它让我明白了我有一个 Config 结构和一个 Server_Config 结构作为配置中的一个字段,允许我添加更多字段,因为我想要不同的类似配置的结构。如何编写一个 parseJSON 函数来处理不同类型的结构?代码:服务器端type Server_Config struct { html_templates string}type Config struct { Server_Config}func main() { config := Config{} ParseJSON("server_config.json", &config) fmt.Printf("%T\n", config.html_templates) fmt.Printf(config.html_templates)}配置文件package mainimport( "encoding/json" "io/ioutil" "log")func ParseJSON(file string, config Config) { configFile, err := ioutil.ReadFile(file) if err != nil { log.Fatal(err) } err = json.Unmarshal(configFile, &config) if err != nil { log.Fatal(err) }}或者,如果有更好的方法来完成所有这些,也请告诉我。对 Go 来说还很陌生,而且我的脑海中已经刻有 Java 约定。
1 回答
绝地无双
TA贡献1946条经验 获得超4个赞
使用interface{}:
func ParseJSON(file string, val interface{}) {
configFile, err := ioutil.ReadFile(file)
if err != nil {
log.Fatal(err)
}
err = json.Unmarshal(configFile, val)
if err != nil {
log.Fatal(err)
}
}
调用函数是一样的。
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消