Implementando json marshaller sobre stuct incorporado em Go
Eu tenho uma estrutura que gostaria de codificar JSON de forma eficiente:
type MyStruct struct {
*Meta
Contents []interface{}
}
type Meta struct {
Id int
}
A estrutura contém metadados de um formulário conhecido e o conteúdo de um formulário desconhecido. A lista de conteúdo é preenchida durante o tempo de execução, portanto, eu realmente não tenho controle sobre eles. Para melhorar a velocidade de empacotamento do Go, gostaria de implementar a interface Marshaller sobre a estrutura Meta. A interface do Marshaller se parece com isso:
type Marshaler interface {
MarshalJSON() ([]byte, error)
}
Por favor, tenha em mente que a Meta struct não é tão simples como mostrada aqui. Eu tentei implementar a interface Marshaler sobre a estrutura Meta, mas parece que quando eu, em seguida, JSON empacotar MyStruct, o resultado é apenas o resultado retornado pela interface Meta marshalling.
Então, minha pergunta é: Como posso JSON empacotar uma estrutura, que contém uma estrutura embutida com seu próprio marshaller JSON e outra struct sem uma?