Я пытаюсь прочитать фрагмент карты с помощью golang viper со следующим кодом (предложено: Чтение фрагмента карт с помощью Golang Viper )
package main
import (
"bytes"
"fmt"
"github.com/davecgh/go-spew/spew"
"github.com/spf13/viper"
)
type conf struct {
key string `mapstructure:"key"`
}
func main() {
viper.SetConfigType("yaml") // or viper.SetConfigType("YAML")
// any approach to require this configuration into your program.
var yamlExample = []byte(`
list:
- key: 'value_string1'
- key: 'value_string1'
`)
viper.ReadConfig(bytes.NewBuffer(yamlExample))
var confSlice []conf
err := viper.UnmarshalKey("list", &confSlice)
if err != nil {
fmt.Println("unmarshal failed, malformat?", err)
return
}
spew.Dump(confSlice)
}
Вывод представляет собой фрагмент из 2 пустых структур, например
([]main.conf) (len=2 cap=2) {
(main.conf) {
key: (string) ""
},
(main.conf) {
key: (string) ""
}
}
Пробовал несколько разных способов, но все еще не найден, один работал. Кто-нибудь, кто может дать мне подсказку? Спасибо.
PS: Это фрагмент карты с некоторыми парами kv, а не только с парой 1 kv. Я сократил это для краткости.