gpt4 book ai didi

go - YAML MapSlice 在编码或解码时保留序列

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:03 26 4
gpt4 key购买 nike

我对如何使用 YAML MapSlice 数据结构感到困惑。来自这里https://sourcegraph.com/go/gopkg.in/yaml.v2/-/MapSlice .我设法解码为一种 MapSlice 但如何将其映射到我自己的结构

var data = `
id:
id-jakut:
en:
name: North Jakarta City
label: North Jakarta
id:
name: Kota Jakarta Utara
label: Jakarta Utara
id-jaksel:
en:
name: South Jakarta City
label: South Jakarta
id:
name: Kota Jakarta Selatan
label: Jakarta Selatan
tw:
tw-tp:
en:
name: Taipei City
label: Taipei
zh-TW:
name: 台北
label: 台北市
tw-ntp:
en:
name: New Taipei City
label: New Taipei City
zh-TW:
name: 新北市
label: 新北市
`

type cityLocale struct {
Name string `yaml:"name,flow"`
Label string `yaml:"label,flow"`
}

type cityLocales map[string]cityLocale
type cities map[string]cityLocales
type countryCities map[string]cities

func main() {
m := yaml.MapSlice{}
err := yaml.Unmarshal([]byte(data), &m)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("MAPSLICE==>%+v\n\n", m)

t := countryCities{}
err = yaml.Unmarshal([]byte(data), &t)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("NORMAL==>%+v\n", t["tw"])

}

最佳答案

您需要更改您的城市类型,因为您错过了一张 map 。如果您的城市是字符串 map 的 map ,您的代码可以工作:

type cities map[string]map[string]cityLocales

关于go - YAML MapSlice 在编码或解码时保留序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42266028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com