Реализация json marshaller над встроенной структурой в Go
У меня есть структура, которую я хотел бы эффективно кодировать JSON:
type MyStruct struct {
*Meta
Contents []interface{}
}
type Meta struct {
Id int
}
Структура содержит метаданные известной формы и содержимое неизвестной формы. Список содержимого заполняется во время выполнения, поэтому я не могу контролировать их. Чтобы улучшить скорость сортировки в Go, я бы хотел реализовать интерфейс Marshaller поверх структуры Meta. Интерфейс Marshaller выглядит следующим образом:
type Marshaler interface {
MarshalJSON() ([]byte, error)
}
Пожалуйста, имейте в виду, что структура Meta не так проста, как показано здесь. Я пытался реализовать интерфейс Marshaler через структуру Meta, но кажется, что когда я затем выполняю JSON-маршал MyStruct, результатом является только результат, возвращаемый интерфейсом Meta-marshalling.
Итак, мой вопрос: как я могу JSON маршалировать структуру, которая содержит встроенную структуру en со своим собственным маршаллером JSON и другую структуру без таковой?