Удалить поле из структуры, преобразовать структуру

Из API Google Диска я получаю структуру типа File. Эта структура почти такая же, как структура, которую я хотел бы вставить в BigQuery.

Структура File содержит поле AppProperties, несовместимое с BigQuery:

AppProperties map[string]string `json:"appProperties,omitempty"`

Таким образом, конечным результатом, который я хотел бы получить, является та же самая структура с удаленным полем AppProperties. Таким образом, в основном вопрос заключается в том, «как удалить поле из структуры», но это не имеет смысла, поскольку значения структуры изменяются, а поля структуры — нет. По крайней мере, это то, что я понимаю сейчас.

Единственное решение, которое я могу придумать, это скопировать определение структуры файла, опустить поле AppProperties и переместить все значения поля.

Как правильно это сделать в Go?

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

John 16.12.2020 20:14

Спасибо, Джон. Вы имеете в виду преобразование его в JSON и обратно в структуру? В этом случае мне все равно нужно определить свою собственную структуру без поля AppPropereties. Это сработает, однако кажется, что просто удалить поле требует больших усилий.

Jasper Duizendstra 16.12.2020 20:28

Я имею в виду, что если вы просто хотите вставить его в BigQuery и вставляете его как JSON, описанный мной метод должен работать для этого варианта использования, предполагая, что вы не хотите читать обратно. В противном случае да, скорее всего, это другая структура, поскольку они (концептуально) должны быть разных типов.

John 16.12.2020 20:39

Ах я вижу. Да, это имеет смысл, запись JSON в BigQuery будет работать. О другой структуре, кроме встраивания другой структуры в структуру, нельзя повторно использовать части другой структуры? Я могу скопировать и вставить структуру файла

Jasper Duizendstra 16.12.2020 20:50

Да, кроме встраивания, насколько я могу судить, нет способа скопировать определение структуры.

John 16.12.2020 20:51
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
0
5
674
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Единственный способ - скопировать структуру и опустить ненужные поля для вас, это утомительно, но другого пути нет...

Другие вопросы по теме