Чтение фрагмента карт с Golang viper - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь прочитать фрагмент карты с помощью 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. Я сократил это для краткости.

...