结构体标签
package main
import (
"encoding/json"
"fmt"
)
type Student struct{
Name string `json:"-"` //====》 在使用json编码时,这个编码不参与
Age int `json:"age,string"`//===>在json编码时,将age转成string类型,一定要两个字段:名字,类型,中间不能有空格
Subject string `json:"Subject_name"` //===》在json编码时,这个字段回编码成Subject\_name
gender string //注意gender是小写的,小写字母开头的在json编码的时候回忽略掉
Address string `json:"address,omitempty"`//==>在json编码时,如果这个字段是空的,那么忽略掉,不参与编码
}
func main () {
t1 := Student{
Name: "golang",
Subject: "Golang",
Age: 18,
gender: "Man",
Address: "北京",
}
fmt.Println("t1", t1)
encodeInfo,_ := json.Marshal(&t1)
fmt.Println("encodeInfo:", string(encodeInfo))
}
总结:
- 1、对于结构体进行编码时,比如 json 字段的首字母必须大写,否则无法编码
- 2、如果json格式,要求key小写,那么可以通过标签(tag)来解决
- 3、tag 细节:
type Student struct{
Name string `json:"-"` //====》 在使用json编码时,这个编码不参与
Age int `json:"age,string"`//===>在json编码时,将age转成string类型,一定要两个字段:名字,类型,中间不能有空格
Subject string `json:"Subject_name"` //===》在json编码时,这个字段回编码成Subject\_name
gender string //注意gender是小写的,小写字母开头的在json编码的时候回忽略掉
Address string `json:"address,omitempty"`//==>在json编码时,如果这个字段是空的,那么忽略掉,不参与编码
}