Browse Source

add examples for decoding embedded structs

Michael Vogt 11 năm trước cách đây
mục cha
commit
e90bcf783f
2 tập tin đã thay đổi với 37 bổ sung0 xóa
  1. 2 0
      README.md
  2. 35 0
      examples/embedded-structs.go

+ 2 - 0
README.md

@@ -48,6 +48,8 @@ The yaml package is licensed under the LGPL with an exception that allows it to
 Example
 -------
 
+Some more examples can be found in the "examples" folder.
+
 ```Go
 package main
 

+ 35 - 0
examples/embedded-structs.go

@@ -0,0 +1,35 @@
+package main
+
+import (
+	"fmt"
+	"log"
+
+        "gopkg.in/yaml.v2"
+)
+
+type StructA struct {
+	A string `yaml:"a"`
+}
+
+type StructB struct {
+	// go-yaml will not decode embedded structs by default, to do that
+	// you need to add the ",inline" annotation below
+	StructA   `yaml:",inline"`
+	B string `yaml:"b"`
+}
+
+var data = `
+a: a string from struct A
+b: a string from struct B
+`
+
+func main() {
+	var b StructB
+
+	err := yaml.Unmarshal([]byte(data), &b)
+	if err != nil {
+                log.Fatalf("error: %v", err)
+	}
+        fmt.Println(b.A)
+        fmt.Println(b.B)
+}