Я использую файлы JSON для хранения / загрузки моей конфигурации. Допустим, у меня есть следующее:
type X interface
// implements interface X
type Y struct {
Value string
}
// implements interface X
type Z struct {
Value string
}
type Config struct {
interfaceInstance X `json:"X"`
}
Пример файла конфигурации:
{
"config1": {
"X": {
"type": "Z",
"Value": "value_1"
}
},
"config2": {
"X": {
"type": "Y",
"Value": "value_2"
}
}
}
Я хочу иметь возможность определять файлы конфигурации примерно так, как в этом примере, и иметь возможность динамически загружать JSON как struct Y
или struct Z
. Любые предложения о том, как это сделать? Я использую простой json.Decoder
для загрузки JSON в виде структуры.
decoder := json.NewDecoder(file)
err = decoder.Decode(&config)