`json:”-“` 是 Go 语言中的一个标签(tag),用于指示编码和解码 JSON 时忽略对应的字段。
在 Go 中,结构体的字段可以通过添加标签来指定其在编码为 JSON 字符串或解码时的行为。`json:”-“` 标签的作用是告诉编码和解码过程忽略该字段,即不包含该字段的值。
例如,考虑以下结构体定义:
“`go
type Person struct {
Name string `json:”name”`
Age int `json:”-“`
Email string `json:”email”`
}
“`
在这个例子中,`Age` 字段的标签为 `json:”-“`,指示在编码为 JSON 时忽略该字段的值。而 `Name` 字段的标签为 `json:”name”`,`Email` 字段的标签为 `json:”email”`,它们指定了 JSON 字符串中对应字段的名称。
当使用 `encoding/json` 包中的函数进行 JSON 编码或解码时,会根据标签的指示来处理结构体的字段。在编码为 JSON 字符串时,`Age` 字段将被忽略,而 `Name` 和 `Email` 字段将包含在生成的 JSON 中。
示例:
“`go
person := Person{
Name: “John”,
Age: 30,
Email: “john@example.com”,
}
data, _ := json.Marshal(person)
fmt.Println(string(data))
“`
输出结果:
“`json
{“name”:”John”,”email”:”john@example.com”}
“`
可以看到,`Age` 字段被忽略,而 `Name` 和 `Email` 字段被编码为 JSON 字符串中的键值对。
原文地址:https://blog.csdn.net/weixin_37841024/article/details/135374246
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_52440.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!