2016-08-20 18 views
1

をストラクトない問題を複製、外出先の遊び場です: https://play.golang.org/p/GgHsLffp1GJSONデコードがマップ[文字列]インターフェースを{}得、ここで

基本的に、私は取る関数を記述しようとしています構造体を返し、HTTP要求をその型としてデコードできる関数を返します。残念ながら、いくつかの型情報が失われており、返される型は正しい構造体型ではなく、map [string]インタフェース{}です。正しいタイプをJSONデコーダに伝えるにはどうしたらいいですか? JSONの非整列化はうまくいくのでしょうか?

答えて

1

これは動作するようです:

Playground

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) 
} 
+0

感謝!私はreflect.ValueOf(i)、Elem()を使用しなければならなくなりました。 –

関連する問題