- 安装 yaml.v2
go get gopkg.in/yaml.v2 - 代码示例 yaml_v2.go
package main
import (
"fmt"
"os"
"gopkg.in/yaml.v2"
)
var data = `
afoo: 30
bfoo: 1
cfoo: "cfoo"
dfoo:
- "dfoo_1"
- "dfoo_2"
eeee:
ea: "ea"
eb: 2
`
type Efoo struct {
Ea string `yaml:"ea"`
Eb uint `yaml:"eb"`
}
type Settings struct {
Afoo uint `yaml:"afoo"`
Bfoo int `yaml:"bfoo"`
Cfoo string `yaml:"cfoo"`
Dfoo []string `yaml:"dfoo"`
Eeee Efoo `yaml:"eeee"`
}
func main() {
settings := Settings{}
err := yaml.Unmarshal([]byte(data), &settings)
if err != nil {
os.Exit(1)
}
fmt.Printf("--- Settings:\n%v\n\n", settings)
settings.Afoo = 60
settings.Cfoo = "CFOO"
settings.Dfoo[0] = "DFOO_1"
settings.Dfoo[1] = "DFOO_2"
settings.Eeee.Ea = "EA"
settings.Eeee.Eb = 4
d, err := yaml.Marshal(&settings)
if err != nil {
os.Exit(1)
}
fmt.Printf("--- dump:\n%s\n\n", string(d))
}