gpt4 book ai didi

go - 解码嵌套在列表中的 YAML 映射

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

我正在尝试为既是 int 又是字符串列表的数据结构编写 YAML。但是我无法让数据结构和 YAML 字符串相匹配。例如

package main

import (
"fmt"
"log"

yaml "gopkg.in/yaml.v2"
)

type ThingAndGroups struct {
Groups []string
Value int
}

var someStr = `
thing1:
Groups:
- g1
- g2
Value:
5
`

func main() {
t := make(map[string]ThingAndGroups)

err := yaml.Unmarshal([]byte(someStr), &t)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("--- t:\n%v\n\n", t)
}

返回

map[thing1:{[] 0}]

如何让 thing1 成为字符串列表?

最佳答案

把你的类型改成这个

type ThingAndGroups struct {
Groups []string `yaml:"Groups"`
Value int `yaml:"Value"`
}

https://godoc.org/gopkg.in/yaml.v2#Marshal 的文档中它说

Struct fields are only unmarshalled if they are exported (have an upper case first letter), and are unmarshalled using the field name lowercased as the default key. Custom keys may be defined via the "yaml" name in the field tag

或者,您可以更改您的 yaml 输入以使用小写字段,例如 value,这样您就不需要指定自定义名称。

关于go - 解码嵌套在列表中的 YAML 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43811221/

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