Я хочу использовать универсальную функцию для демарширования различных типов:
type Foo struct {
Name string
Another string
}
type Bar struct {
Name string
Some string
}
func unmarshal(data []byte, val *[]map[string]interface{}) {
err := json.Unmarshal(data, val)
if err != nil || (*val)[0]["Name"] == "" {
*val = nil
}
}
func main() {
var foos []Foo
var bars []Bar
// fooData and barData are JSON strings retrieved from database
unmarshal(fooData, &foos)
unmarshal(barData, &bars)
}
Я получил сообщение об ошибке типа cannot use &foo (type *[]Foo) as type *[]map[string]interface {} in argument to unmarshal
.
Я пытался использовать val interface{}
в качестве параметрано он не поддерживает индекс.
Как мне тогда достичь цели?Благодаря.