# HG changeset patch # User pyon@macmini # Date 1479015856 -32400 # Node ID bf5d764cd80dd9def83135b4a5dc07aaca6e6ebd # Parent f4ba4cfb09fd905738a76cb19b0c0e6f7831f453 New: csv2json.go diff -r f4ba4cfb09fd -r bf5d764cd80d src/csv2json/csv2json.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/csv2json/csv2json.go Sun Nov 13 14:44:16 2016 +0900 @@ -0,0 +1,63 @@ +/****************************************************************************/ +/* csv2json.go */ +/* Last Change: 2016-11-13 Sun 13:49:23. */ +/* By T.Mutoh */ +/****************************************************************************/ +package main + +import ( + "encoding/csv" + "encoding/json" + "flag" +// "fmt" + "log" + "os" + "strconv" +) + +type office struct { + Id string + Sv string + Name string + Addr string + Phone string + Fax string + Capacity int +} + +func main() { + flag.Parse() + + f, err := os.Open( flag.Arg(0) ); if err != nil { + log.Fatal( err ) + } + + r := csv.NewReader( f ) + r.Comment = '#' + records, err := r.ReadAll(); if err != nil { + log.Fatal( err ) + } + + var offices []office + for _, record := range records { + c, err := strconv.Atoi( record[6] ); if err != nil { + c = 0 + } + data := office{ + Id: record[0], + Sv: record[1], + Name: record[2], + Addr: record[3], + Phone: record[4], + Fax: record[5], + Capacity: c, + } + offices = append( offices, data ) + } + + bytes, err := json.Marshal( offices ); if err != nil { + log.Fatal( err ) + } + os.Stdout.Write( bytes ) +} +