type Parent struct {
Name string `json:"parent_name"`
}
type Child struct {
Parent
}
假设我有两个结构Parent
和Child
。我有两个端点使用这两个结构读取 json
。
// Sample Parent endpoint payload
{
"parent_name": "Parent Name"
}
// Sample Child endpoint payload
{
"child_name": "Child Name"
}
这两个结构都用于存储类似的数据,但每个端点有效负载的 json
键不同。有没有办法编辑 Child
结构上的 json
标记,以便 Child
仍然继承自 Parent
,但是标签现在是 json:"child_name"
?
最佳答案
Go 没有继承,只有组合。不要考虑父子关系,而是从部分-整体的角度来思考。
在您的示例中,您可以混合使用 json:",omitempty"
标记和“字段阴影”来获取结果:
type Parent struct {
Name string `json:"parent_name,omitempty"`
}
type Child struct {
Parent
Name string `json:"child_name"`
}
Playground :http://play.golang.org/p/z72dCKOhYC .
但这仍然没有捕获要点(如果 child.Parent.Name
不为空,则会中断)。如果您要“覆盖”每个嵌入 Parent
的结构中的字段,为什么它首先存在?
关于json - 在golang中编辑继承属性的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34718094/