2
0
config/config.go
2017-12-08 21:02:26 +08:00

48 lines
806 B
Go

package config
import (
"encoding/json"
"errors"
"io/ioutil"
"reflect"
)
type Field struct {
JsonName string
YamlName string
PropName string
EnvName string
CliName string
Value reflect.Value
DefaultValue string
Separator string
}
type Config struct {
Fields []Field
}
func (this *Config) Init() *Config {
if this.Fields == nil {
this.Fields = []Field{}
}
return this
}
func (this *Config) ParseJSON(jsonFile string, data interface{}) error {
raw, err := ioutil.ReadFile(jsonFile)
if err != nil {
return errors.New("Can't open json file. Err: " + err.Error())
}
err = json.Unmarshal(raw, data)
if err != nil {
return errors.New("Failed unmarshal json. Err: " + err.Error())
}
//fmt.Printf("Data: %v", *data.(*interface{}))
return nil
}