struct tag

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