讀取JSON檔案並放置於結構中

通常可以用於讀取組態檔使用。

匯入函式庫

import "encoding/json"

假設有一設定檔:configure.json

{
    "database": {
        "host": "localhost",
        "password": "12345"
    },
    "host": "localhost",
    "port": "8080"
}

golang 中對應的資料結構

type Config struct {
    Database struct {
        Host     string `json:"host"`
        Password string `json:"password"`
    } `json:"database"`
    Host string `json:"host"`
    Port string `json:"port"`
}

忽略空資料欄位

若不想讓空資料出現,可以加上:omitempty 來使用。

type MyStruct struct {
   Afield string `json:"afield,omitempty"`
}

讀取檔案並放入資料結構中

func LoadConfiguration(file string) Config {
    var config Config
    configFile, err := os.Open(file)
    defer configFile.Close()
    if err != nil {
        fmt.Println(err.Error())
    }
    jsonParser := json.NewDecoder(configFile)
    jsonParser.Decode(&config)
    return config
}