職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

JSONファイル

2023年08月25日 | GO言語
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

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ファイル分割とローカルパッ... | トップ | goのテンプレート »
最新の画像もっと見る

コメントを投稿

GO言語」カテゴリの最新記事