Go JSON Tag
Go JSON About 1,122 wordsTag
omitempty:空值、nil、数组或集合长度为0时,忽略该字段。-:破折号,忽略该字段。-,:将字段名改为-。,string:将int类型字段转为string类型。
代码
定义结构体,其中R1为常规tag。
R2中:(注意返回字段的大小写)
code,string:将int类型的Code转为string类型的code;,string:将Code2转为string的Code2;msg,omitempty:当Msg为nil或""时,忽略该字段,反之返回msg字段;,omitempty: 当Data为nil等情况时,忽略该字段,反之返回Data字段;-:忽略该字段;-,:将字段名改为-;
type (
R1 struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
}
R2 struct {
Code int `json:"code,string"`
Code2 int `json:",string"`
Msg string `json:"msg,omitempty"`
Data interface{} `json:",omitempty"`
Data2 interface{} `json:",omitempty"`
Id int `json:"-"`
Id2 int `json:"-,"`
}
)
func main() {
r1, _ := json.Marshal(R1{Code: 0, Msg: "请求成功", Data: "字符串数据"})
fmt.Println(string(r1)) // {"code":0,"msg":"请求成功","data":"字符串数据"}
r2, _ := json.Marshal(R2{Code: 0, Msg: "", Data: "字符串数据", Data2: nil, Code2: 999, Id: 1000, Id2:2000})
fmt.Println(string(r2)) // {"code":"0","Code2":"999","Data":"字符串数据","-":2000}
}
参考
Views: 5,171 · Posted: 2020-11-03
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...