go言語でjson形式の設定ファイルを読み込む
実行する際の変数の外出
設定ファイルにして配置しておくとやりやすいので対応する。
前提
設定ファイルはjson
実装
config.json
{ "url": "http://hogehoge.com", "count": 100, "user": "hoge", "pass": "foo" }
sample1.go
package main import ( "log" "os" "io/ioutil" "encoding/json" "strconv" ) // jsonの設定ファイルを読み込むサンプル func main() { // 処理開始 log.Println("start") jsonString, err := ioutil.ReadFile("config.json") if err != nil { log.Println(err) os.Exit(1) } // config.jsonの中身を出力 // そのままだとbyteデータになるのでstringに変換 log.Println(string(jsonString)) // 構造体定義 type Config struct { Url string `json:"url"` Count int `json:"count"` User string `json:"user"` Pass string `json:"pass"` } // 設定変数用意 c := new(Config) // 設定 err = json.Unmarshal(jsonString, c) if err != nil { log.Println(err) os.Exit(2) } // 結果出力 log.Println("url = " + c.Url) log.Println("count = " + strconv.Itoa(c.Count)) log.Println("user = " + c.User) log.Println("pass = " + c.Pass) // 処理終了 log.Println("end") }
↓
$ go run sample1.go 2017/10/28 14:32:33 start 2017/10/28 14:32:33 { "url": "http://hogehoge.com", "count": 100, "user": "hoge", "pass": "foo" } 2017/10/28 14:32:33 url = http://hogehoge.com 2017/10/28 14:32:33 count = 100 2017/10/28 14:32:33 user = hoge 2017/10/28 14:32:33 pass = foo 2017/10/28 14:32:33 end $
注意点
構造体に設定する際はフィールドの項目は外部公開できるように1文字目を大文字にしておくこと
そうしないと構造体のデータに設定されてくれない