我在尝试使用gopkg.in/yaml.v2读取此Yaml时遇到问题,错误是:line 1: cannot unmarshal !!seq into main.Owners
读取文件:
content, _ := ioutil.ReadFile("apartments.yml")
owners := Owners{}
err := yaml.Unmarshal(content, &owners)
if err != nil {
fmt.Printf("%s\n", err)
}
我的结构看起来像:
type Owners struct {
Owner []struct {
Apartment string `yaml:"apartment"`
PaymentIds []string `yaml:"paymentIds"`
} `yaml:"owner"`
}
数据:
- owner:
apartment: 002
paymentIds:
- KB002
- owner:
apartment: 003
paymentIds:
- KB003
- owner:
apartment: 004
paymentIds:
- KB004
- owner:
apartment: 005
paymentIds:
- KB005
最佳答案
使用Owners
的结构片而不是Owner
,因为根据您的owner
,每个Owners
都有一个yaml
节点。
type Owners []struct {
Owner struct {
Apartment string `yaml:"apartment"`
PaymentIds []string `yaml:"paymentIds"`
} `yaml:"owner"`
}
关于go - 解码yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61328097/