package config import ( "encoding/json" "errors" ) type State string var States = map[int]State{ 27006: "NC", 84058: "UT", } func (state *State) UnmarshalJSON(b []byte) error { var s string if err := json.Unmarshal(b, &s); err != nil { return err } for k := range States { if string(States[k]) == s { *state = States[k] return nil } } return errors.New("unknown state " + s) }