JSON形式で外部設定ファイルを作成・利用する方法
【開発環境】
OS:Win11(64ビット)
go version go1.19.4 windows/amd64
VSCode1.72.2、及びコマンドプロンプト
【JSON形式の設定ファイルの作成】
作成場所
・JSONフォロダーにサンプルコード「main.go」を書く
package main
import (
"fmt"
"strconv"
"JSON/conf" // 実装した設定ファイルパッケージの読み込み
)
func main() {
// 設定ファイルを読み込む
confDB, err := conf.ReadConfDB()
if err != nil {
fmt.Println(err.Error())
}
fmt.Println("取得した設定内容を出力します")
fmt.Println("ホスト名: " + confDB.Host)
fmt.Println("ポート: " + strconv.Itoa(confDB.Port))
fmt.Println("接続先DB名: " + confDB.DbName)
fmt.Println("接続ユーザ名: " + confDB.User)
fmt.Println("パスワード: " + confDB.Pass)
}
・JSONフォロダーにサブフォルダーconfを作成し、そこにjsonファイルを書く
コード
{
"host": "hoge-host",
"port": 3306,
"db-name": "hoge-db",
"user": "hogehoge",
"pass": "fugafuga"
}
・サブフォルダーconfに、jsonファイルを読み込むプログラム「db.go」を書く
package conf // 独自の設定ファイルパッケージ
import (
"encoding/json"
"io/ioutil"
)
// DB設定の構造体
type ConfDB struct {
Host string `json:"host"` // ホスト名
Port int `json:"port"` // ポート番号
DbName string `json:"db-name"` // 接続先DB名
User string `json:"user"` // 接続ユーザ名
Pass string `json:"pass"` // 接続パスワード
}
// DB設定読み込み関数
func ReadConfDB() (*ConfDB, error) {
// 設定ファイル名
const conffile = "conf/db.json"
// 構造体を初期化
conf := new(ConfDB)
// 設定ファイルを読み込む
cValue, err := ioutil.ReadFile(conffile)
if err != nil {
return conf, err
}
// 読み込んだjson文字列をデコードし構造体にマッピング
err = json.Unmarshal([]byte(cValue), conf)
if err != nil {
return conf, err
}
return conf, nil
}
・JSONに「go.mod」を書く
module JSON // モジュール名はディレクトリ名と同じにする
go 1.18
・実行する
PS D:\GO言語\サンプルプログラム\JSON> go run .
取得した設定内容を出力します
ホスト名: hoge-host
ポート: 3306
接続先DB名: hoge-db
接続ユーザ名: hogehoge
パスワード: fugafuga
※コメント投稿者のブログIDはブログ作成者のみに通知されます