【发布时间】:2015-09-01 09:12:43
【问题描述】:
我正在编写一个解析配置 JSON 文件并使用 json.Unmarshal 将其数据存储在结构中的函数。我做了一些研究,它让我明白了我有一个 Config 结构和一个 Server_Config 结构作为 config 中的一个字段,以允许我添加更多字段,因为我想要不同的类似配置的结构。
如何编写一个 parseJSON 函数来处理不同类型的结构?
代码:
Server.go
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)
}
config.go
package main
import(
"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 约定。
【问题讨论】: