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)
}
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)
}
原文:https://www.cnblogs.com/nextworld/p/14993821.html