go-header-csv is encoder/decoder csv with a header.
The following is an example of csv.
func ExampleDecoder_DecodeAll() {
in := `name,text
Ed,Knock knock.
Sam,Who's there?
Ed,Go fmt.
Sam,Go fmt who?
Ed,Go fmt yourself!
`
out := []struct {
Name string `csv:"name"`
Text string `csv:"text"`
}{}
buf := bytes.NewBufferString(in)
dec := headercsv.NewDecoder(buf)
dec.DecodeAll(&out)
for _, v := range out {
fmt.Printf("%3s: %s\n", v.Name, v.Text)
}
// Output:
// Ed: Knock knock.
// Sam: Who's there?
// Ed: Go fmt.
// Sam: Go fmt who?
// Ed: Go fmt yourself!
}
func ExampleEncoder_EncodeAll() {
in := []struct {
Name string `csv:"name"`
Text string `csv:"text"`
}{
{"Ed", "Knock knock."},
{"Sam", "Who's there?"},
{"Ed", "Go fmt."},
{"Sam", "Go fmt who?"},
{"Ed", "Go fmt yourself!"},
}
enc := headercsv.NewEncoder(os.Stdout)
enc.EncodeAll(in)
enc.Flush()
// Output:
// name,text
// Ed,Knock knock.
// Sam,Who's there?
// Ed,Go fmt.
// Sam,Go fmt who?
// Ed,Go fmt yourself!
}