在我的Go代码中,我有以下情况:
我能否创建一个映射,使得 json.Unmarshal 可以设置 Filter 结构体中正确的操作符常量? 我知道 Unmarshaler 接口,但我不认为它可以用于常量值。 我真的很想在我的 Go 代码中保留常量,因为这样可以在传递常量时很好地执行类型检查和一致性。
type Operator int
const (
UNKNOWN Operator = iota
EQUALS
CONTAINS
BETWEEN
DISTANCE
)
type Filter struct {
Field string `json:"field"`
Operator Operator `json:"operator"`
Values []string `json:"values"`
}
我期望的JSON应该看起来像下面这样:
{
"operator": "EQUALS",
"field": "name",
"values": [ "John", "Doe" ]
}
我能否创建一个映射,使得 json.Unmarshal 可以设置 Filter 结构体中正确的操作符常量? 我知道 Unmarshaler 接口,但我不认为它可以用于常量值。 我真的很想在我的 Go 代码中保留常量,因为这样可以在传递常量时很好地执行类型检查和一致性。