golang读取配置文件,其实就涉及两个知识点:一是文件的读取;二是json数据的处理。关于第二点,已经在上一篇的go对json对象的生成和解析中详细介绍。今天主要是演示配置文件的读取。
config.json
{
"addr":"27017",
"mongo":{
"mongoAddr":"127.0.0.1",
"mongoPoolLimit":500,
"mongoDb":"benben_2015",
"mongoCol":"test"
}
}
main.go
package main
import (
"io/ioutil"
"encoding/json"
"fmt"
)
//定义配置文件解析后的结构
type MongoConfig struct {
MongoAddr string
MongoPoolLimit int
MongoDb string
MongoCol string
}
type Config struct {
Addr string
Mongo MongoConfig
}
func main() {
JsonParse := NewJsonStruct()
v := Config{}
//下面使用的是相对路径,config.json文件和main.go文件处于同一目录下
JsonParse.Load("./config.json", &v)
fmt.Println(v.Addr)
fmt.Println(v.Mongo.MongoDb)
}
type JsonStruct struct {
}
func NewJsonStruct() *JsonStruct {
return &JsonStruct{}
}
func (jst *JsonStruct) Load(filename string, v interface{}) {
//ReadFile函数会读取文件的全部内容,并将结果以[]byte类型返回
data, err := ioutil.ReadFile(filename)
if err != nil {
return
}
//读取的数据为json格式,需要进行解码
err = json.Unmarshal(data, v)
if err != nil {
return
}
}