Подтвердить что ты не робот

Обращайтесь с дополнительным полем JSON в блоке запроса HTTP в Голанге

У вас есть структура для обновления, например:

type MyStruct struct {
Name  string `json:"name"`
Age   int    `json:"age"`
Email string `json:"email"`
} 

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

{
  "name":"Kevin",
  "age":10,
  "email":""
}

Есть ли способ, чтобы тело JSON содержало не все поля с одинаковой структурой? Пример:

{
  "name":"kevin"
}
4b9b3361

Ответ 1

Вы хотите использовать опцию omitempty

type MyStruct struct {
    Name  string `json:"name,omitempty"`
    Age   int    `json:"age"`
    Email string `json:"email,omitempty"`
}

Если вы хотите, чтобы Age был необязательным, вам нужно использовать указатель, так как нулевое значение int на самом деле не пустое.

type MyStruct struct {
    Name  string `json:"name,omitempty"`
    Age   *int   `json:"age,omitempty"`
    Email string `json:"email,omitempty"`
}