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
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}]