view src/csv2json/csv2json.go @ 57:05f3d51ad966

add fwgo.
author pyon@macmini
date Wed, 15 Jul 2020 18:18:24 +0900
parents bf5d764cd80d
children
line wrap: on
line source

/****************************************************************************/
/* 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 )
}