如加入json解析格式
如下代码:
package main
import (
"encoding/json"
"fmt"
"reflect"
)
type Info struct {
Name string //name 是映射成mysql中的char类型还是varchar类型,还是text类型,即使能够说明,但是额外的信息max_length怎么表示
Age int `json:"age,omitempty"` //如果有不想序列化到json解析的格式中的化价格"json:-"
Gender string
}
//反射包
func main() {
//结构体标签,除了名字和类型之外,还有一个可选的标签
//他是一个附属于字段的字符串,可以是文档或其他重要标记
//比如我们在解析json或生成json文
//
//func main() {
// //结构体标签,除了名字和类型之外,还有一个可选的标签
// //他是一个附属于字段的字符串,可以是文档或其他重要标记
// //比如我们在解析json或生成json文件时,常用到encoding/json包,它提供默认标签
// info := Info{
// Name: "bobby",
// Gender: "nan",
// }件时,常用到encoding/json包,它提供默认标签
info := Info{
Name: "bobby",
Gender: "nan",
}
re, _ := json.Marshal(info)
fmt.Println(string(re))
//通过反射包去识别type
t := reflect.TypeOf(info)
fmt.Println(t.Name())
fmt.Println(t.Kind())
for i := 0; i < t.NumField(); i++ {
field := t.Field(i) //获取结构体的每一个字段
tag := field.Tag.Get("json")
}
//具体的引用,绝大多数情况下其实用不到反射,实际开发的项目中可能也会用到
}