comparison src/csv2json/csv2json.go @ 8:bf5d764cd80d

New: csv2json.go
author pyon@macmini
date Sun, 13 Nov 2016 14:44:16 +0900
parents
children
comparison
equal deleted inserted replaced
7:f4ba4cfb09fd 8:bf5d764cd80d
1 /****************************************************************************/
2 /* csv2json.go */
3 /* Last Change: 2016-11-13 Sun 13:49:23. */
4 /* By T.Mutoh */
5 /****************************************************************************/
6 package main
7
8 import (
9 "encoding/csv"
10 "encoding/json"
11 "flag"
12 // "fmt"
13 "log"
14 "os"
15 "strconv"
16 )
17
18 type office struct {
19 Id string
20 Sv string
21 Name string
22 Addr string
23 Phone string
24 Fax string
25 Capacity int
26 }
27
28 func main() {
29 flag.Parse()
30
31 f, err := os.Open( flag.Arg(0) ); if err != nil {
32 log.Fatal( err )
33 }
34
35 r := csv.NewReader( f )
36 r.Comment = '#'
37 records, err := r.ReadAll(); if err != nil {
38 log.Fatal( err )
39 }
40
41 var offices []office
42 for _, record := range records {
43 c, err := strconv.Atoi( record[6] ); if err != nil {
44 c = 0
45 }
46 data := office{
47 Id: record[0],
48 Sv: record[1],
49 Name: record[2],
50 Addr: record[3],
51 Phone: record[4],
52 Fax: record[5],
53 Capacity: c,
54 }
55 offices = append( offices, data )
56 }
57
58 bytes, err := json.Marshal( offices ); if err != nil {
59 log.Fatal( err )
60 }
61 os.Stdout.Write( bytes )
62 }
63