Это зависит от уровня сложности, которого вы хотите достичь ...
Если вы хотите выставить только метку, я бы посоветовал вам создать функцию MarshalJSON, вот так ...
func (t Template) MarshalJSON() ([]byte, error) {
return json.Marshal(&struct {
Id int64 `json:"id"`
Label string `json:"label"`
}{
Id: t.Id,
Label: t.SpecificTemplate.GetLabel(),
})
}
При этом ваш json.Marshal(t)
будет вызывать эту функцию, и вы получите плоский json ...
Однако, если вы хотите выставить больше полей из шаблона, вам следует использовать отражение, как указаноИэн Дункан в своем комментарии