yaml、toml、json、xml、ini
(1). Golang处理库:
①. encoding/json:
a. 标准库中的包,可以处理JSON配置文件.
b. 缺点是不能加注释.
②. gcfg:
a. 处理INI配置文件.
③. toml:
a. 处理TOML配置文件.
④. viper:
a. 处理JSON、TOML、YAML、HCL以及Java properties配置文件.
①. 无歧义地可以映射为哈希表,可以被多种语言解析.
②. TOML是大小写敏感的.
③. 结构体的成员首字母大写.
④. 配置文件的配置项须与结构体成员名一样
⑤. 支持bool、int、float、字符串、字符串数组等.
(1). github包:
go get github.com/BurntSushi/toml
(2). 举例:
[DB]
dns="root:123456@tcp(192.168.33.88:3306)/erp?charset=utf8mb4&parseTime=True&loc=Local"
prot=3306
[LOG]
path="./log.log"
logPathFile="./erp.log" // 如果是字符串类型,必须要引号
注:
①. 键名和键值:
a. 键名和键值有空白会被忽略
b. 有键必须有值
c. 键值对后必须换行
②. 键值如果是string值,必须用引号.
③. 文件名可以是xx.ini
(3). go加载配置文件:
type Config struct {
Database Database `toml:"db"`
}
type Database struct {
DriverName string `toml:"driverName"`
Host string `toml:"host"`
Port int64 `toml:"port"`
Database string `toml:"database"`
User string `toml:"user"`
Password string `toml:"password"`
Charset string `toml:"charset"`
}
var config *Config
func init() {
_, err := toml.DecodeFile("./config.ini", &config)
if err != nil {
panic("loading config fail")
}
}