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}]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测