У меня есть интерфейс map[string]{} из-за декодирования в JSON; с обычными данными интерфейс в большинстве случаев может быть только числом, но в виде строки, например:
var a interface{}
a="3"
Затем все данные будут сохранены в структуре.
type someStruct struct {
ID string
Number1 int
Number2 int
Number3 int
Number4 int
}
Поэтому мне нужно преобразовать интерфейс в int, но я не могу сделать это легко и эффективно, потому что только код будет https://play.golang.org/p/oktbvTUbk93, довольно раздражает, и код кажется нечитаемым, если принять во внимание тот факт, что я должен обрабатывать все возможные ошибки
Я хотел бы преобразовать его непосредственно в int, я искал решения, но любое из этих преобразований работает так, как я хочу https://play.golang.org/p/Dw67U6kZwHC
Если вам интересно, почему я не просто декодирую его в структуру напрямую, потому что это динамические данные, фактическое декодирование происходит следующим образом:
type dataIn struct {
Code int `json:"code"`
ID string `json:"id"`
Data interface{} `json:"data"`
}
И затем я обрабатываю данные в соответствии с кодом и идентификатором, и все они представляют собой разные структуры данных, поэтому я не могу напрямую обрабатывать их с помощью JSON.