Существует структура MyStruct .
type MyStruct struct {
Code int `json:"Code"`
Flags uint8 `json:"Flags"`
OptionField int `json:",omitempty"`
}
Следующий код конвертирует его в json.
f := MyStruct{Code:500, OptionField:41}
r, _ := json.Marshal(f)
fmt.Println(string(r)
Мне нужно, чтобы «OptionField» был необязательным. Некоторое время он должен существовать в json с одним из значений [0, 1, 2, 3,]. а в другое время его следует исключить из json.
Моя проблема: omitempty исключит его, когда значение равно нулю, а значение по умолчанию для int равно нулю. Есть ли способ опустить поле в условии (например: пропустить, если значение равно -1). Или есть способ сделать это.