Из API Google Диска я получаю структуру типа File. Эта структура почти такая же, как структура, которую я хотел бы вставить в BigQuery.
Структура File содержит поле AppProperties, несовместимое с BigQuery:
AppProperties map[string]string `json:"appProperties,omitempty"`
Таким образом, конечным результатом, который я хотел бы получить, является та же самая структура с удаленным полем AppProperties. Таким образом, в основном вопрос заключается в том, «как удалить поле из структуры», но это не имеет смысла, поскольку значения структуры изменяются, а поля структуры — нет. По крайней мере, это то, что я понимаю сейчас.
Единственное решение, которое я могу придумать, это скопировать определение структуры файла, опустить поле AppProperties и переместить все значения поля.
Как правильно это сделать в Go?
Спасибо, Джон. Вы имеете в виду преобразование его в JSON и обратно в структуру? В этом случае мне все равно нужно определить свою собственную структуру без поля AppPropereties. Это сработает, однако кажется, что просто удалить поле требует больших усилий.
Я имею в виду, что если вы просто хотите вставить его в BigQuery и вставляете его как JSON, описанный мной метод должен работать для этого варианта использования, предполагая, что вы не хотите читать обратно. В противном случае да, скорее всего, это другая структура, поскольку они (концептуально) должны быть разных типов.
Ах я вижу. Да, это имеет смысл, запись JSON в BigQuery будет работать. О другой структуре, кроме встраивания другой структуры в структуру, нельзя повторно использовать части другой структуры? Я могу скопировать и вставить структуру файла
Да, кроме встраивания, насколько я могу судить, нет способа скопировать определение структуры.

Единственный способ - скопировать структуру и опустить ненужные поля для вас, это утомительно, но другого пути нет...
Если ваша проблема связана с обработкой
MarshalJSON, вместо переопределения вы можете скопировать переменную, содержащую структуру, и установить для нееAppPropertiesзначениеnil.