1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| package main
import ( "fmt" "reflect" )
type resume struct { Name string `json:"name" doc:"我的名字"` }
func findDoc(stru interface{}) map[string]string { t := reflect.TypeOf(stru).Elem() doc := make(map[string]string)
for i := 0; i < t.NumField(); i++ { doc[t.Field(i).Tag.Get("json")] = t.Field(i).Tag.Get("doc") }
return doc
}
func main() { var stru resume doc := findDoc(&stru) fmt.Printf("name字段为:%s\n", doc["name"]) }
|