本文摘自网络,作者,侵删。
package main import ( "fmt" "log" "gopkg.in/yaml.v2" ) func test_parse_yaml() { data := []byte(` name: GOLANG say: f: hello b: world say2: - f: hello b: world `) v := yaml.MapSlice{} // 用于接收解析的 yaml 数据 if err := yaml.Unmarshal(data, &v); err != nil { log.Fatal(err) } for _, item := range v { //key := item.Key switch value := item.Value.(type) { // value 表示 item.Value 转换成对应 type 的值 case string: // item.Value 是字符串类型 fmt.Println("Type: string", value) fmt.Println("----------------------------------") case yaml.MapSlice: // item.Value 是yaml.MapSlice类型 fmt.Println("Type: yaml.MapSlice", value) for _, subitem := range value { fmt.Println(subitem) } fmt.Println("----------------------------------") case []interface{}: // []interface{} 类型 fmt.Println("Type: []interface{}", value) for _, subint := range value { fmt.Println(subint) } fmt.Println("----------------------------------") default: // 未知类型 fmt.Println("Type: unknow", value) fmt.Println("----------------------------------") } } } func main() { test_parse_yaml() }
本文来自:51CTO博客
感谢作者:mob604756fbd94e
查看原文:使用golang解析yaml
相关阅读 >>
Go - 基于 Gorm 获取当前请求所执行的 sql 信息
更多相关阅读请进入《Go》频道 >>

Go语言101
一个与时俱进的Go编程知识库。