Golang JSON Tag
Golang JSON 大约 1122 字Tag
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}
}
参考
阅读 2486 · 发布于 2020-11-03
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
MySQL 内存占用过高阅读 2078
-
常用开源协议以及是否能够商用阅读 5574
-
软考-系统架构设计师:Flynn 分类法阅读 2393
-
走进 Rust:函数阅读 1769
-
Nginx 负债均衡的几种方式阅读 1310
-
Elasticsearch 短语搜索 query->match_phrase阅读 2184
-
走进 Spring Boot 之第三步 SpringApplication run 方法阅读 2608
-
MySQL-Utilities 工具报 TypeError: wrap_socket() got an unexpected keyword argument 'ciphers'阅读 3011
-
走进 Rust:Crate、模板阅读 2058
-
Java 并发编程之 AtomicBoolean阅读 905