Я пытаюсь разобрать карту JSON, где ключ не встроенного типа. Как мне этого добиться?
Я написал пример кода, для которого Я думаю, код должен выглядеть. Перейти на игровую площадку ссылка
package main
import (
"encoding/json"
"errors"
"fmt"
)
type Tier int
func (t *Tier) UnmarshalJSON(data []byte) error {
switch string(data) {
case "TIER1":
*t = 1
case "TIER2":
*t = 2
default:
return errors.New("Unrecognized")
}
return nil
}
func main() {
jsonData := []byte(`{
"TIER1": "hello",
"TIER2": "world"
}`)
unmarshaledData := map[Tier]string{}
if err := json.Unmarshal(jsonData, &unmarshaledData); err != nil {
fmt.Print("Error: ", err)
}
fmt.Print("Unmarshaled data: ", unmarshaledData)
}
Однако я продолжаю получать эту ошибку:
Error: json: cannot unmarshal number TIER1 into Go value of type main.TierUnmarshaled data: map[]
Я что-то не так делаю в своем коде?