如何讀取yaml,json,ini等配置文件

這篇文章將為大家詳細(xì)講解有關(guān)如何讀取yaml,json,ini等配置文件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)專注于內(nèi)江企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。內(nèi)江網(wǎng)站建設(shè)公司,為內(nèi)江等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

實(shí)際項(xiàng)目中,還有一個(gè)比較重要的基礎(chǔ)功能,就是讀取相關(guān)的配置文件。今天就來(lái)說(shuō)一說(shuō),Golang 是如何讀取YAML,JSON,INI等配置文件的。

1. json使用

JSON 應(yīng)該比較熟悉,它是一種輕量級(jí)的數(shù)據(jù)交換格式。層次結(jié)構(gòu)簡(jiǎn)潔清晰 ,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。

1. 創(chuàng)建 conf.json:

{  "enabled": true,  "path": "/usr/local"}

2. 新建config_json.go:

package main
import (    "encoding/json"    "fmt"    "os")
type configuration struct {    Enabled bool    Path    string}
func main() {    // 打開(kāi)文件    file, _ := os.Open("conf.json")
   // 關(guān)閉文件    defer file.Close()
   //NewDecoder創(chuàng)建一個(gè)從file讀取并解碼json對(duì)象的*Decoder,解碼器有自己的緩沖,并可能超前讀取部分json數(shù)據(jù)。    decoder := json.NewDecoder(file)
   conf := configuration{}    //Decode從輸入流讀取下一個(gè)json編碼值并保存在v指向的值里    err := decoder.Decode(&conf)    if err != nil {        fmt.Println("Error:", err)    }    fmt.Println("path:" + conf.Path)}

啟動(dòng)運(yùn)行后,輸出如下:

D:\Go_Path\go\src\configmgr>go run config_json.gopath:/usr/local

2. ini的使用

INI文件格式是某些平臺(tái)或軟件上的配置文件的非正式標(biāo)準(zhǔn),由節(jié)(section)和鍵(key)構(gòu)成,比較常用于微軟Windows操作系統(tǒng)中。這種配置文件的文件擴(kuò)展名為INI。

1. 創(chuàng)建 conf.ini:

[Section]enabled = truepath = /usr/local # another comment

2.下載第三方庫(kù):go get gopkg.in/gcfg.v1

3. 新建 config_ini.go:

package main
import (    "fmt"    gcfg "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)}

啟動(dòng)運(yùn)行后,輸出如下:

D:\Go_Path\go\src\configmgr>go run config_ini.gotrue/usr/local

3. yaml使用

yaml 可能比較陌生一點(diǎn),但是最近卻越來(lái)越流行。也就是一種標(biāo)記語(yǔ)言。層次結(jié)構(gòu)也特別簡(jiǎn)潔清晰 ,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成。

golang的標(biāo)準(zhǔn)庫(kù)中暫時(shí)沒(méi)有給我們提供操作yaml的標(biāo)準(zhǔn)庫(kù),但是github上有很多優(yōu)秀的第三方庫(kù)開(kāi)源給我們使用。

1. 創(chuàng)建 conf.yaml:

enabled: truepath: /usr/local

2. 下載第三方庫(kù):go get  gopkg.in/yaml.v2

3. 創(chuàng)建 config_yaml.go:

package main
import (    "fmt"    "io/ioutil"    "log"
   "gopkg.in/yaml.v2")
type conf struct {    Enabled bool   `yaml:"enabled"` //yaml:yaml格式 enabled:屬性的為enabled    Path    string `yaml:"path"`}
func (c *conf) getConf() *conf {    yamlFile, err := ioutil.ReadFile("conf.yaml")    if err != nil {        log.Printf("yamlFile.Get err   #%v ", err)    }
   err = yaml.Unmarshal(yamlFile, c)    if err != nil {        log.Fatalf("Unmarshal: %v", err)    }    return c}
func main() {    var c conf    c.getConf()    fmt.Println("path:" + c.Path)}

啟動(dòng)運(yùn)行后,輸出如下:

D:\Go_Path\go\src\configmgr>go run config_yaml.gopath:/usr/local

關(guān)于如何讀取yaml,json,ini等配置文件就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站標(biāo)題:如何讀取yaml,json,ini等配置文件
鏈接地址:http://bm7419.com/article2/ipopic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、ChatGPT、企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名