この記事の最終更新日: 2023年2月1日
Go言語でJSONをCSVに変換するには、encoding/csvパッケージを使用します。
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"os"
)
func main() {
// JSONの読み込み
file, err := os.Open("file.json")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
var data []map[string]interface{}
err = json.NewDecoder(file).Decode(&data)
if err != nil {
fmt.Println(err)
return
}
// JSONからCSVに変換
file, err = os.Create("file.csv")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
header := []string{}
for k := range data[0] {
header = append(header, k)
}
err = writer.Write(header)
if err != nil {
fmt.Println(err)
return
}
for _, item := range data {
var record []string
for _, h := range header {
record = append(record, item[h].(string))
}
err = writer.Write(record)
if err != nil {
fmt.Println(err)
return
}
}
}

大阪のエンジニアが書いているブログ。
コメント