GOGOUP-13. tag和json
作者:互联网
万丈高楼平地起-Tag和JSON
一、Tag
- tag的基本用法
package main import ( "fmt" "reflect" ) //定义个一个结构体 type Stu struct { //添加两个标签 info 标签名称name doc标签名 My Name 注意两个标签中间空格分隔 Name string `info:"name" doc:"MyName"` //添加一个标签 info 名称 sex Sex int `info:"sex"` } func findTag(arg interface{}) { t := reflect.TypeOf(arg) for i := 0; i < t.NumField(); i++ { tagInfo := t.Field(i).Tag.Get("info") tagDoc := t.Field(i).Tag.Get("doc") fmt.Println("info: ", tagInfo, "tagDoc: ", tagDoc) } } func main() { var stu Stu = Stu{} findTag(stu) }
- 执行结果
二、JSON
- JSON 的基本用法
package main import ( "encoding/json" "fmt" ) type Stu struct { Name string `json:"name"` Age int `json:"age"` Mobile string `json:"phone"` Teachers []string `json:"teachers"` } func main() { stu := Stu{"小明", 18, "123333", []string{"老吴", "老虎"}} //编码成json json_str, err := json.Marshal(stu) if err != nil { fmt.Println("json.Marshal error: ", err) return } fmt.Printf("%s\n", json_str) //解码成对象 stu1 := Stu{} err = json.Unmarshal(json_str, &stu1) if err != nil { fmt.Println("json.Unmarshal error: ", err) return } fmt.Printf("%v\n", stu1) }
- 执行结果
标签:info,13,string,err,fmt,GOGOUP,Stu,json,tag 来源: https://www.cnblogs.com/nextworld/p/14993821.html