golang读取yaml文件

yaml文件名:agent.yml

agent:
  agentName: agent001
  location:
      type: cdb
      env: prod
      role: ro
      set: tsh2
      idc: st4
      zone: ap-shanghai-4
      hostname: baidu.com
  content: register new Agent agent001

注意,空格,不要用tab键
golang文件:main.go

package main

import (
	"fmt"
	"os"

	"gopkg.in/yaml.v2"
)

type LocationKey struct {
	CloudType string `yaml:"type"`
	Env       string `yaml:"env"`
	Role      string `yaml:"role"`
	Set       string `yaml:"set"`
	Idc       string `yaml:"idc"`
	Zone      string `yaml:"zone"`
	Hostname  string `yaml:"hostname"`
}

type Agent struct {
	AgentName string      `yaml:"agentName"`
	AgentKey  LocationKey `yaml:"location"`
	Content   string      `yaml:"content"`
}

type as struct {
	Magent Agent `yaml:"agent"`
}

func main() {
	var a as
	data, err := os.ReadFile("./agent.yml")
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	fmt.Println(string(data))
	err = yaml.Unmarshal(data, &a)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	fmt.Println(a)
}

执行:

# go mod tidy
# go build main.go

你可能感兴趣的:(golang,开发语言,后端)