package monstersirenfetch import ( "encoding/json" "strconv" "strings" ) // StringInt is a JSON string representing an integer. type StringInt int func (i *StringInt) MarshalJSON() ([]byte, error) { s := strconv.Itoa(int(*i)) if len(s) < 4 { s = strings.Repeat("0", 4-len(s)) + s } return json.Marshal(s) } func (i *StringInt) UnmarshalJSON(data []byte) (err error) { var v string err = json.Unmarshal(data, &v) if err == nil { var n int n, err = strconv.Atoi(v) if err == nil { *i = StringInt(n) } } return }