组合后的json,匿名字段的jsonTag怎么恢复成原结构体的tag?
type TestA struct {
A *string `json:"AA,omitempty"`
}
type TestB struct {
*TestA `json:",inline"`
B *string `json:"BB,omitempty"`
}
我有两个结构体,在初始化TestB后
func NewString(s string) *string {
return &s
}
t := &TestB{
TestA: &TestA{
A: NewString("a"),
},
B: NewString("b"),
}
初始化完成后,我想要获取AA和BB两个字段的jsonTag
y := reflect.TypeOf(t)
if y.Kind() == reflect.Ptr {
y = y.Elem()
}
fieldNum := y.NumField()
for i := 0; i < fieldNum; i++ {
jsonTag := y.Field(i).Tag.Get("json")
fmt.Println(jsonTag)
}
输出结果为
,inline
BB,omitempty
而我想要得到的结果为
AA,omitempty
BB,omitempty
请问有什么办法可以实现我这个需求
把继承那的换成这样写吧