golang⼏种常⽤配置⽂件使⽤⽅法总结(yaml、toml、json、xml、ini)1. yaml配置⽂件的使⽤⽅法总结
⾸先介绍使⽤yaml配置⽂件,
第⼀步:下载
go get gopkg.in/yaml.v21
第⼆步:新建⼀个yaml⽂件,⽐如conf.yaml
host: localhost:3306
user: tigerwolfc
pwd: 654321
小时代原著结局原文dbname: tablename
特别需要强调的是冒号后⾯必须有⼀个空格,以user: tigerwolfc为例,
user: tigerwolfc//冒号后⾯有空格
第三步:在程序中使⽤配置⽂件获取参数,⽐如
package main
import (
"io/ioutil"
"gopkg.in/yaml.v2"
"fmt"
)
func main() {
var c conf
conf:=c.getConf()
fmt.Println(conf.Host)
}
//profile variables
type conf struct {
Host string `yaml:"host"`
User string `yaml:"user"`
Pwd string `yaml:"pwd"`
Dbname string `yaml:"dbname"`
}
func (c *conf) getConf() *conf {
yamlFile, err := ioutil.ReadFile("conf.yaml")
if err != nil {
fmt.Println(err.Error())
}
err = yaml.Unmarshal(yamlFile, c)
if err != nil {
fmt.Println(err.Error())
}
return c
}
运⾏,就可以打印出配置⽂件中user的值tigerwolfc
2. toml配置⽂件的使⽤⽅法总结
go get github/BurntSushi/toml
第⼆部:新建⼀个toml⽂件,⽐如l
# id
ID = 3
# name
Name = "TigerwolfC"
# weight
Weight = 58
# books
Books = ["Golang", "C++", "Python"]
Sex = true
#friend Friend都可以
[friend]
Age = 28
Name = "chen_peggy"
细节点:
结构体的成员⾸字母⼤写
配置⽂件的配置项须与结构体成员名⼀样
⽀持bool, int, float , 字符串,字符串数组…等,也可以包含其他结构体 如[Friend]第三步:在程序中使⽤配置⽂件
package main
import (
"fmt"
"github/BurntSushi/toml"
"log"
)
//Person
type Person struct {
ID    uint32
Sex    boolpython解析json文件
Name  string
Weight float32
Friend *Friends
Books  []string
}
/
/ friends
type Friends struct {
Age  int
Name string
}
func test_toml() {
var cp Person
var path string = "./l"
if _, err := toml.DecodeFile(path, &cp); err != nil {
log.Fatal(err)
}
fmt.Printf("%v %v\n", cp.Name, cp.Friend.Name)
}
func main() {
test_toml()
}
/*
result:
TigerwolfC  chen_peggy
*/
---------------------
3. json配置⽂件的使⽤⽅法总结
JSON(JavaScript Object Notation, JS 对象标记) 是⼀种轻量级的数据交换格式。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语⾔。 易于⼈阅读和编写,同时也易于机器解析和⽣成,并有效地提升⽹络传输效率。
新建⼀个⽂件名为conf.json,键⼊内容:
{
"enabled": true,
"path": "/usr/local"
}
新建,键⼊内容:
package main
import (
"encoding/json"
"fmt"
"os"
)
type configuration struct {
Enabled bool
Path    string
}
func main() {
file, _ := os.Open("conf.json")
defer file.Close()
decoder := json.NewDecoder(file)
conf := configuration{}
err := decoder.Decode(&conf)
if err != nil {
python能做什么17fmt.Println("Error:", err)
}
fmt.Println(conf.Path)
}
4. xml配置⽂件的使⽤⽅法总结
可扩展标记语⾔,标准通⽤标记语⾔的⼦集,是⼀种⽤于标记电⼦⽂件使其具有结构性的标记语⾔。
新建⼀个⽂件名为l,键⼊内容:
<?xml version="1.0" encoding="UTF-8" ?>
<Config>
<enabled>true</enabled>
<path>/usr/local</path>
</Config>
新建,键⼊内容:
package main
import (
"encoding/xml"
如何使用数组里的数
"fmt"
"os"
)
type configuration struct {
Enabled bool  `xml:"enabled"`
Path    string `xml:"path"`
}
func main() {
xmlFile, err := os.Open("l")
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer xmlFile.Close()
var conf configuration
if err := xml.NewDecoder(xmlFile).Decode(&conf); err != nil {
fmt.Println("Error Decode file:", err)
return
}
fmt.Println(conf.Enabled)
fmt.Println(conf.Path)
}
5. ini配置⽂件的使⽤⽅法总结
INI⽂件格式是某些平台或软件上的配置⽂件的⾮正式标准,以节(section)和键(key)构成,常⽤于微软Windows操作系统中。这种配置⽂件的⽂件扩展名多为INI,故名。fastjson安全版本
新建⼀个⽂件名为conf.ini,键⼊内容:
; A comment line
[Section]
enabled = true
path = /usr/local # another comment
使⽤第三⽅库:
go get gopkg.in/gcfg.v1
新建,键⼊代码:
package main
import (
"fmt"
"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)
}
输出:
true龙江人设初始化失败怎么回事
/usr/local
如有不对欢迎指正,相互学习,共同进步。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。