go---反序列化
import (
"encoding/json"
"io/ioutil"
)
// 程序配置,用标签跟文件中的json的key对应起来
type Config struct {
Port int `json:"port"`
ReadTimeout int `json:"readTimeout"`
WriteTimeout int `json:"writeTimeout"`
}
var (
// 单例模式
G_config *Config
)
// 传入文件路径
func InitConfig(filename string) (err error) {
var (
content []byte
conf Config
)
// 1、去读文件
if content, err = ioutil.ReadFile(filename); err != nil {
return
}
// 2、JSON反序列化
if err = json.Unmarshal(content, &conf); err != nil {
return
}
// 3、解析成功就赋值单例
G_config = &conf
return
}
JSON文件
{
"port": 8079,
"readTimeout": 5000,
"writeTimeout": 5000
}
// 调用
// 加载配置文件
if err = master.InitConfig("./test.json"); err != nil {
goto ERR
}