Когда вы отключаете JSON до []interface{}
, есть ли способ автоматически определить тип, помимо некоторых стандартных типов, таких как bool, int и string?UnmarshalJSON любой тип из [] интерфейс {} возможно?
То, что я заметил следующее, Скажем, я маршалу [uuid.UUID, bool]
тогда JSON я получаю выглядит следующим образом:
[[234,50,7,116,194,41,64,225,177,151,60,195,60,45,123,106],true]
Когда я распаковать его снова, я получаю типы, как показано через reflect
:
[]interface{}, bool
Я не понимаю, почему он выбрал []interface{}
. Если он не сможет его обнаружить, не должно быть, по крайней мере, interface{}
?
В любом случае, мой вопрос в том, можно ли размонтировать любой тип, если цель имеет тип []interface{}
? Кажется, он работает для стандартных типов, таких как string, bool, int, но для пользовательских типов я не думаю, что это возможно, не так ли? Вы можете определить пользовательские методы маршала/немаршала JSON, но это работает только в том случае, если вы декодируете его в целевой тип, чтобы он мог искать, какие пользовательские методы маршала/немаршала использовать.