Golang⼊门系列(九)如何读取YAML,JSON,INI等配置⽂件实际项⽬中,读取相关的系统配置⽂件是很常见的事情。今天就来说⼀说,Golang 是如何读取YAML,JSON,INI等配置⽂件的。
1. json使⽤
1. 创建 conf.json:
{
"enabled": true,
"path": "/usr/local"赵薇作品
}
2. 新建:
package main
import (
"encoding/json"
"fmt"
"os"
)
type configuration struct {
Enabled bool
Path string
}
func main() {
// 打开⽂件
file, _ := os.Open("conf.json")
// 关闭⽂件
defer file.Close()
//NewDecoder创建⼀个从file读取并解码json对象的*Decoder,解码器有⾃⼰的缓冲,并可能超前读取部分json数据。
decoder := json.NewDecoder(file)
conf := configuration{}
//Decode从输⼊流读取下⼀个json编码值并保存在v指向的值⾥宋达民 洪百榕
err := decoder.Decode(&conf)
if err != nil {
fmt.Println("Error:", err)
}
fmt.Println("path:" + conf.Path)
}
启动运⾏后,输出如下:
D:\Go_Path\go\src\configmgr>go run
余征瑶path:/usr/local
2. ini的使⽤
INI⽂件格式是某些平台或软件上的配置⽂件的⾮正式标准,由节(section)和键(key)构成,⽐较常⽤于微软Windows操作系统中。这种配置⽂件的⽂件扩展名为INI。
1. 创建 conf.ini:
[Section]
enabled = true
path = /usr/local # another comment
2.下载第三⽅库:go get gopkg.in/gcfg.v1
3. 新建 :
package main
import (
"fmt"
gcfg "gopkg.in/gcfg.v1"
读取配置文件失败)
func main() {
config := struct {
Section struct {
Enabled bool
Path string
}
}{}
err := gcfg.ReadFileInto(&config, "conf.ini")
if err != nil {
fmt.Println("Failed to parse config file: %s", err)
}
fmt.Println(config.Section.Enabled)
fmt.Println(config.Section.Path)
}
启动运⾏后,输出如下:
D:\Go_Path\go\src\configmgr>go run
true
/usr/local
颜宁个人资料及简介3. yaml使⽤
yaml 可能⽐较陌⽣⼀点,但是最近却越来越流⾏。也就是⼀种标记语⾔。层次结构也特别简洁清晰,易于阅读和编写,同时也易于机器解析和⽣成。
golang的标准库中暂时没有给我们提供操作yaml的标准库,但是github上有很多优秀的第三⽅库开源给我们使⽤。
1. 创建 conf.yaml:
enabled: true
path: /usr/local
2. 下载第三⽅库:go get gopkg.in/yaml.v2
3. 创建 :
package main
import (
"fmt"
"io/ioutil"
周秀娜抱枕"log"
"gopkg.in/yaml.v2"
)
type conf struct {
Enabled bool `yaml:"enabled"` //yaml:yaml格式 enabled:属性的为enabled
Path string `yaml:"path"`
}
func (c *conf) getConf() *conf {
yamlFile, err := ioutil.ReadFile("conf.yaml")
if err != nil {
log.Printf("yamlFile.Get err #%v ", err)
}
err = yaml.Unmarshal(yamlFile, c)
if err != nil {
log.Fatalf("Unmarshal: %v", err)
}
return c
}
func main() {
var c conf
fmt.Println("path:" + c.Path)
}
启动运⾏后,输出如下:
D:\Go_Path\go\src\configmgr>go run
path:/usr/local
最后
以上,就把golang 读取配置⽂件的⽅法,都介绍完了。⼤家可以拿着代码运⾏起来看看。
发布评论