モケラ

Tech Sheets

mokelab

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)
}

一覧に戻る