Go 原生配置文件读取的代码示范

19 min read
package tool

import (
	"os"
	"bufio"
	"encoding/json"
)

type Config struct {
	AppName string    `json:"app_name"`
	AppMode string    `json:"app_mode"`
	AppHost string    `json:"app_host"`
	AppPort string    `json:"app_port"`
}

var _cfg *Config = nil

func ParseConfig(path string) (*Config, error) {
	file, err := os.Open(path)
	if err != nil {
		panic(err)
	}
	defer file.Close()

	reader := bufio.NewReader(file)
	decoder := json.NewDecoder(reader)
	if err = decoder.Decode(&_cfg); err != nil {
		return nil, err
	}
	return _cfg, nil
}

{
  "app_name": "cloudrestaurant",
  "app_mode": "debug",
  "app_host": "localhost",
  "app_port": "8090"
}