How do I encode a struct to/from YAML in Go?

In Go, encoding and decoding YAML can be accomplished using the gopkg.in/yaml.v2 package. Below is an example of how to encode a struct into YAML format and decode it back to a struct.

package main import ( "fmt" "gopkg.in/yaml.v2" ) // Person struct represents a person type Person struct { Name string `yaml:"name"` Age int `yaml:"age"` } func main() { // Create an instance of Person p := Person{Name: "John Doe", Age: 30} // Encode to YAML data, err := yaml.Marshal(&p) if err != nil { panic(err) } fmt.Println(string(data)) // Decode from YAML var p2 Person err = yaml.Unmarshal(data, &p2) if err != nil { panic(err) } fmt.Println(p2) }

go yaml struct encoding decoding