这是一个复制问题的游乐场: https://play.golang.org/p/GgHsLffp1G
基本上,我正在尝试编写一个带结构的函数,并返回一个可以将http请求解码为该类型的函数。遗憾的是,某些类型信息正在丢失,返回的类型是map [string] interface {},而不是正确的struct类型。如何将正确的类型传达给JSON解码器? JSON解组会更好吗?
答案 0 :(得分:1)
这似乎有效:
func requestParser(i interface{}) parser {
return func(r io.Reader) (interface{}, error) {
json.NewDecoder(r).Decode(i)
return reflect.ValueOf(i).Elem(), nil
}
}
func main() {
var foo Foo
s := "{\"Name\":\"Logan\"}"
p := requestParser(&foo)
}