Mercurial > mercurial > hgweb_golang.cgi
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 |
