Go에서는 CSV 레코드를 사용자 정의 구조로 역직렬화해야 하는 공통된 요구가 있습니다. "encoding/csv" 패키지는 기본 CSV 읽기를 제공하지만 수동으로 구문 분석하고 구조체로 변환해야 합니다. 다행히 이 프로세스를 단순화하는 대체 솔루션이 있습니다.
이러한 솔루션 중 하나는 사용자 정의 구조체를 처리하기 위한 "encoding/json" 패키지와 동일한 접근 방식을 따르는 gocarina/gocsv입니다. 또한 특정 유형에 대한 사용자 정의 마샬링 및 역마샬링을 허용합니다.
예를 고려하세요.
type Client struct { Id string `csv:"client_id"` Name string `csv:"client_name"` Age string `csv:"client_age"` } func main() { in, err := os.Open("clients.csv") if err != nil { panic(err) } defer in.Close() clients := []*Client{} if err := gocsv.UnmarshalFile(in, &clients); err != nil { panic(err) } for _, client := range clients { fmt.Println("Hello, ", client.Name) } }
여기서 gocsv.UnmarshalFile은 역직렬화된 클라이언트 구조체로 클라이언트 슬라이스를 직접 채웁니다. 이는 언마샬링 프로세스를 단순화하여 표준 "인코딩/csv" 방법을 사용하는 것보다 더 직관적이고 편리합니다.
위 내용은 CSV 데이터를 Go 구조체로 효율적으로 역마샬링하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!