golang基礎學習-yaml檔案的解析

來源:互聯網
上載者:User

1.什麼是yaml?

官網解釋

%YAML 1.2---YAML: YAML Ain't Markup LanguageWhat It Is: YAML is a human friendly data serialization  standard for all programming languages.

2.yaml文法

yaml文法,請參考這位仁兄的,寫的很詳細。

3. golang解析yaml檔案

系統內容: MacOS、vim 8.0 、golang :go version go1.8 darwin/amd64

3.1 建立yaml檔案

vim first.yaml

內容如下:

SiteName: seetaSiteAddr: BeiJingHttps: trueNginx:    Port: 443    LogPath:  "/var/log//nginx/nginx.log"    Path: "/opt/nginx/"

3.2 go 解析yaml的package

3.2.1 yaml.v2

本文採用 : gopkg.in/yaml.v2

import "gopkg.in/yaml.v2"

3.2 解析yaml檔案代碼

package mainimport (    "fmt"    "io/ioutil"    "gopkg.in/yaml.v2")//Nginx nginx  配置type Nginx struct {    Port int `yaml:"Port"`    LogPath string `yaml:"LogPath"`    Path string `yaml:"Path"`}//Config   系統配置配置type Config struct{    Name string `yaml:"SiteName"`    Addr string `yaml:"SiteAddr"`    HTTPS bool `yaml:"Https"`    SiteNginx  Nginx `yaml:"Nginx"`}func main() {    var setting Config    config, err := ioutil.ReadFile("./first.yaml")    if err != nil {        fmt.Print(err)    }    yaml.Unmarshal(config,&setting)    fmt.Println(setting.Name)    fmt.Println(setting.Addr)    fmt.Println(setting.HTTPS)    fmt.Println(setting.SiteNginx.Port)    fmt.Println(setting.SiteNginx.LogPath)    fmt.Println(setting.SiteNginx.Path)}

函數簡介:

  1. ioutil.ReadFile("./first.yaml") :讀取yaml檔案資訊
  2. yaml.Unmarshal()

第一個輸入參數:擷取 ioutil.ReadFile 的值,為[]byte類型
第二個參數輸出參數,可以為任意類型。

參考:
GoDoc中的yaml.v2
github中yaml源碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.