GoでTOMLをデコードする
最終更新日:2017-06-13
GoでTOMLをデコードするにはgithub.com/BurntSushi/tomlを使用します。
例として次のようなTOMLをデコードしてみます。
[DB]
user = "fkm"
pass = "moke"
db = "tech"
データ構造を定義する
まず、デコードしたデータを入れるための構造を定義しておきます。
type Configuration struct {
        DB DBConfiguration
}
type DBConfiguration struct {
        Username string `toml:"user"`
        Password string `toml:"pass"`
        DBName   string `toml:"db"`
}
デコードする
デコードするにはtoml.DecodeFile()を呼ぶだけです。簡単だね♪
package main
import (
        "fmt"
        "github.com/BurntSushi/toml"
)
...
func main() {
        var c Configuration
        _, err := toml.DecodeFile("conf.toml", &c)
        if err != nil {
                fmt.Errorf("Failed to decode file : %!s(MISSING)", err)
                return
        }
        fmt.Printf("username=%!s(MISSING)\n", c.DB.Username)
        fmt.Printf("password=%!s(MISSING)\n", c.DB.Password)
        fmt.Printf("db name=%!s(MISSING)\n", c.DB.DBName)
}
    
