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: 4,323 · Posted: 2020-11-03
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...