2017-05-18 2 views
2

Golang의 API-Rest에서 작업하고 있습니다. Gorm을 사용하고 있기 때문에 데이터베이스 테이블을 나타내는 구조체가 있습니다. In 만들기 양식을받은 값이 있지만 지금 당장 나는 모든 값을 구조체에 inmediatly 할당 할 수 있는지 의심 스럽습니다. 왜냐하면 5 백개 필드가있는 테이블이 하나씩 할당을 할 수 없기 때문에, 나는 이런 식으로 최선을 다했다.Golang에서 struct에 양식 값을 할당합니다.

json.NewDecoder(req.Body).Decode(&myobject) 

그러나 나는 거기에서 Json을 받아야했고, 클라이언트 측이 나에게 Form을 보낸다. 그렇다면 어떻게 그 값을 깨끗하고 읽기 쉬운 방법으로 할당 할 수 있습니까?

+1

가장 청결한 방법은 아마도 요청 본문을 디코딩하지 않고 struct에 직접 값을 넣는 것입니다. –

+0

답변을 받았지만, 물어볼 필요가 ... 세계에서 500 열이있는 테이블로 어떻게 끝났습니까? – Adrian

+1

이 문제를 해결하기 위해 고안된 [binding] (https://github.com/mholt/binding) 라이브러리를 확인하십시오. – nothingmuch

답변

4

다중 파트/양식 데이터 본문을 구조체로 언 마샬링하는 기본 제공 방법이 없습니다. 그러나 이 양식 데이터를 Request.Form에있는 map[string][]string으로 자동으로 구문 분석합니다. 간단한 루프로 map[string]string으로 변환 할 수 있습니다. 그런 다음 리플렉션을 사용하여 직접 구조체로 전송하거나 mapstructure 또는 gorilla/schema과 같은 라이브러리를 사용할 수 있습니다.

관련 문제