Golangで配列のJSONを構造体の配列に変換する
Golangで構造体をJSONファイルとして出力する方法です。 このコードではローカルのJSONファイルを読みとり、構造体の配列に変換しています。
main.go
package main
import (
"encoding/json"
"io/ioutil"
"os"
"fmt"
"log"
)
type Pokemon struct {
Id int `json:"id"`
Name string `json:"name"`
}
func main() {
// pokemons.json を読み込む
pokemonsJsonFile, err := os.Open("pokemons.json")
// pokemons.json の読み込みに失敗した場合
if err != nil {
log.Fatal(err)
}
// defer で pokemonsJsonFile を閉じる
defer pokemonsJsonFile.Close()
// pokemonsJsonFile を読み込みパースする
pokemonsByteValue, _ := ioutil.ReadAll(pokemonsJsonFile)
var pokemons []Pokemon
json.Unmarshal(pokemonsByteValue, &pokemons)
fmt.Println(pokemons) // [{132 Ditto} {133 Eevee} {143 Snorlax}]
}
pokemons.json
[
{
"id":132,
"name":"Ditto"
},
{
"id":133,
"name":"Eevee"
},
{
"id":143,
"name":"Snorlax"
}
]
