dongyi4420 2019-08-26 21:17
浏览 300
已采纳

无法将Yaml文件解组为struct

I am trying to UnmarshalS into DataCollectionFromYAML

--- 
- 
  labels: cats, cute, funny
  name: "funny cats"
  url: "http://glorf.com/videos/asfds.com"
- 
  labels: cats, ugly,funny
  name: "more cats"
  url: "http://glorf.com/videos/asdfds.com"
- 
  labels: dogs, cute, funny
  name: "lots of dogs"
  url: "http://glorf.com/videos/asasddfds.com"
- 
  name: "bird dance"
  url: "http://glorf.com/videos/q34343.com"

type DataFromYAML struct {
    Labels string `yaml:"labels"`
    Name   string `yaml:"name"`
    URL    string `yaml:"url"`
}

type DataCollectionFromYAML struct {
    data []VidedFromYAML
}

Here is part of my code and I am using gopkg.in/yaml.v2 package

yamlFile, err := ioutil.ReadAll(r)
    if err != nil {
        return err
    }
    var data models.DataFromYAML

    err2 := yaml.Unmarshal(yamlFile, data)


I am getting the error message: cannot unmarshal !!seq into models.DataCollectionFromYAML

  • 写回答

1条回答 默认 最新

  • doukun8670 2019-08-27 04:08
    关注

    insted of models.DataFromYAML use array of []models.DataFromYAML package main

    import (
        "fmt"
    
        "github.com/ghodss/yaml"
    )
    
    
    const data = `--- 
    - 
      labels: cats, cute, funny
      name: "funny cats"
      url: "http://glorf.com/videos/asfds.com"
    - 
      labels: cats, ugly,funny
      name: "more cats"
      url: "http://glorf.com/videos/asdfds.com"
    - 
      labels: dogs, cute, funny
      name: "lots of dogs"
      url: "http://glorf.com/videos/asasddfds.com"
    - 
      name: "bird dance"
      url: "http://glorf.com/videos/q34343.com"
    `
    
    type DataFromYAML struct {
        Labels string `yaml:"labels"`
        Name   string `yaml:"name"`
        URL    string `yaml:"url"`
    }
    
    
    func main() {
        var test []DataFromYAML
        err := yaml.Unmarshal([]byte(data), &test)
        if err != nil {
            fmt.Printf("err: %v
    ", err)
            return
        }
    
        fmt.Println(test)
    }
    

    Output:

    [{cats, cute, funny funny cats http://glorf.com/videos/asfds.com} {cats, ugly,funny more cats http://glorf.com/videos/asdfds.com} {dogs, cute, funny lots of dogs http://glorf.com/videos/asasddfds.com} { bird dance http://glorf.com/videos/q34343.com}]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 画CAD几张图片内容如下1111111111111111111111111111111111111111111
  • ¥15 基于python的电影系统推荐
  • ¥20 springmvc重定向和返回json
  • ¥15 数学建模——参会安排怎么做
  • ¥15 电脑键盘实现触摸功能
  • ¥25 matlab无法将表达式转换为双数组怎么解决?
  • ¥15 单片机汇编语言相关程序
  • ¥20 家用射频美容仪技术规格
  • ¥15 大家帮我看看为什么错了
  • ¥15 unity互动琴弦抖动效果