【问题标题】:Unmarshalling yaml解组 yaml
【发布时间】:2020-08-03 06:55:03
【问题描述】:

我在尝试使用 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

【问题讨论】:

    标签: go yaml


    【解决方案1】:

    使用Owners 的结构切片而不是Owner,因为根据您的yaml,每个Owners 都有owner 节点。

    type Owners []struct {
        Owner struct {
            Apartment  string `yaml:"apartment"`
            PaymentIds []string `yaml:"paymentIds"`
        } `yaml:"owner"`
    }
    

    【讨论】:

      猜你喜欢
      • 2021-06-05
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 2018-05-29
      • 1970-01-01
      相关资源
      最近更新 更多