2016-08-20 1 views
1
다음

문제 복제 갈 놀이터입니다 구조체하지 산출 : 기본적으로 https://play.golang.org/p/GgHsLffp1GJSON 디코딩지도 [문자열] 인터페이스는 {},

을, 나는 걸리는 함수를 작성하려고 해요 struct를 호출하고 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

감사합니다! 나는 reflection.ValueOf (i), Elem(). Interface()를 사용하여 작업해야만했다. –