-- Go

Go ile CSV veriyi JSON’a Dönüştürme

Go ile CSV veriyi JSON’a Dönüştürme

Yazılım teknolojilerinin son döneminde en sık kullanılan veri formatlarından biri CSV’dir. Özellikle BigData ve veri odaklı mimariler ile teknolojiler geliştikçe CSV ile veri alışverişi, import ve export işlemleri daha da değerli hale geldi.

Bu örneğimizde GoLang ile bir CSV veriyi nasıl JSON veri formatına dönüştüreceğimizi inceleyeceğiz. Bu iki format da XML gibi çok yaygın ve sık kullanılmaktadır.

Örnek CSV verisi(data.csv);

Cihan,Özhan,29
Kerim,Fırat,36
Emre,Okumuş,35
Barış,Özhan,30

Programın Go kodu;

package main

import (
	"encoding/csv"
	"encoding/json"
	"fmt"
	"os"
	"strconv"
)

type Employee struct {
	FirstName string
	LastName  string
	Age       int
}

func main() {
	csvFile, err := os.Open("./data.csv")
	if err != nil {
		fmt.Println(err)
	}
	defer csvFile.Close()

	reader := csv.NewReader(csvFile)
	reader.FieldsPerRecord = -1

	csvData, err := reader.ReadAll()
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	var emp Employee
	var employees []Employee

	for _, each := range csvData {
		emp.FirstName = each[0]
		emp.LastName = each[1]
		emp.Age, _ = strconv.Atoi(each[2])
		employees = append(employees, emp)
	}

	// Convert to JSON
	jsonData, err := json.Marshal(employees)
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	fmt.Println(string(jsonData))

	jsonFile, err := os.Create("./data.json")
	if err != nil {
		fmt.Println(err)
	}
	defer jsonFile.Close()

	jsonFile.Write(jsonData)
	jsonFile.Close()
}

Uygulamayı çalıştırdığımızda çıktı olarak bize data.json isimli bir JSON dosyası üretecektir. Bu dosyanın içeriği ise aşağıdaki gibidir;

[
    {"FirstName":"Cihan","LastName":"Özhan","Age":29},
    {"FirstName":"Kerim","LastName":"Fırat","Age":36},
    {"FirstName":"Emre","LastName":"Okumuş","Age":35},
    {"FirstName":"Barış","LastName":"Özhan","Age":30}
]

İyi çalışmalar.
Cihan Özhan

Yorumla

Yorum