package storage import ( "github.com/buger/jsonparser" ) type Pair struct { ID string `json:"id"` Text string `json:"text"` } func New(id, text string) Pair { return Pair{ Text: text, ID: id, } } func (p *Pair) UnmarshalJSON(b []byte) error { var err error if s, err := jsonparser.GetString(b); err == nil { p.ID = s return nil } if p.Text, err = jsonparser.GetString(b, "text"); err != nil { return err } if p.ID, err = jsonparser.GetString(b, "id"); err != nil && err != jsonparser.KeyPathNotFoundError { return err } return nil } func (p Pair) Equals(o Pair) bool { return p == o }