Go言語【開発】JSONプロファイルをロードする
2384 ワード
JSON配置ローディング
補助URL、JSON回転構造体対応 http://json2struct.mervine.net/
JSONファイルからグローバル変数に設定を読み込みます。
設定ファイル config.json
初期化パッケージConfig.goの設定
入り口 main.go
転載先:https://www.cnblogs.com/lianzhilei/p/11536227.html
補助URL、JSON回転構造体対応 http://json2struct.mervine.net/
JSONファイルからグローバル変数に設定を読み込みます。
設定ファイル config.json
{
"HTTP ": "IP ",
"host1": "10.45.151.75",
"HTTP ": " ",
"port1": 8080,
" ": " ",
"dbConfig": {
"host":"10.45.151.1",
"port" : 3306,
"db" : "pbx",
"user" : "remote",
"passwd" : "tx_1234abc"
},
"rabbitmqConfig": {
"host":"10.45.151.75",
"port" : 5672,
"vhost" : "/",
"user" : "remote",
"passwd" : "tx_1234abc"
}
}
初期化パッケージConfig.goの設定
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
type http struct {
Host string `json:"host1"`
Port int `json:"port1"`
}
type db struct {
Host string `json:"host"`
Port int `json:"port"`
Db string `json:"db"`
User string `json:"user"`
Passwd string `json:"passwd"`
}
type amqp struct {
Host string `json:"host"`
Port int `json:"port"`
Vhost string `json:"vhost"`
User string `json:"user"`
Passwd string `json:"passwd"`
}
type baseConfig struct {
http
db `json:"dbConfig"`
amqp `json:"rabbitmqConfig"`
}
var (
HttpConfig *http
DBConfig *db
AmqpConfig *amqp
)
func InitConfig(filename string) (err error) {
var (
content []byte
conf baseConfig
)
if content, err = ioutil.ReadFile(filename); err != nil {
fmt.Println(err)
return
}
if err = json.Unmarshal(content, &conf); err != nil {
fmt.Println(err)
return
}
HttpConfig = &conf.http
DBConfig = &conf.db
AmqpConfig = &conf.amqp
return
}
入り口 main.go
package main
import "fmt"
//import "fmt"
func main() {
err := InitConfig("c:/Users/9999/go/src/go_calltask/config.json")
if err != nil{
return
}
// http db rabbitmq
fmt.Println(HttpConfig.Host)
fmt.Println(DBConfig.Port)
fmt.Println(AmqpConfig.Vhost)
}
//10.45.151.75
//3306
///
転載先:https://www.cnblogs.com/lianzhilei/p/11536227.html