Rak*_*esh 2 json struct marshalling go
在 Golang 中,我有以下三个字段的 Struct
type Person struct {
name string
age int
rank int
}
Run Code Online (Sandbox Code Playgroud)
对于处理,我需要一个等级字段,但对于输出,我想从结构中排除等级字段,因为我直接将上面的结构传递给 JSON 编码器以抛出响应。
有什么方法可以取消 Struct 中的排名字段?
要取消设置字段,请将其零值分配给它,例如:
var p Person
p.rank = 0
Run Code Online (Sandbox Code Playgroud)
还要知道,如果要使用PersonJSON,必须导出字段,encoding/json包不处理未导出的字段,因此更改Person为:
type Person struct {
Name string
Age int
rank int
}
Run Code Online (Sandbox Code Playgroud)
仅此一项就会rank被排除在 JSON 处理之外,因为它是未导出的。
如果您也需要导出该rank字段,则使用json:"-"标签值从 JSON 处理中排除导出的字段:
type Person struct {
Name string
Age int
Rank int `json:"-"`
}
Run Code Online (Sandbox Code Playgroud)