如上代码所示,可以使用json:",omitempty"
来省略结构体中的某些字段在 json 中的显示。
例如:
type ColorGroup struct {
ID int `json:",omitempty"`
Name string
Colors []string
}
type Total struct {
A ColorGroup`json:",omitempty"`
B string`json:",omitempty"`
}
group := Total{
A: ColorGroup{},
}
在这种情况下,B
不会出现在json.Marshal(group)
中。
然而,如果
group := Total{
B:"abc",
}
A
仍然显示在 json.Marshal(group)
中。
{"A":{"Name":"","Colors":null},"B":"abc"}
问题是如何仅获取
{"B":"abc"}
编辑:
经过一些搜索,这里有一个建议使用指针,换句话说,将Total
改为
type Total struct {
A *ColorGroup`json:",omitempty"`
B string`json:",omitempty"`
}