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() {
	// pokemon.json を読み込む
	pokemonJsonFile, err := os.Open("pokemon.json")

	// pokemon.json の読み込みに失敗した場合
	if err != nil {
		log.Fatal(err)
	}

	// defer で pokemonJsonFile を閉じる
	defer pokemonJsonFile.Close()

	// pokemonJsonFile を読み込みパースする
	pokemonByteValue, _ := ioutil.ReadAll(pokemonJsonFile)
	var pokemon Pokemon
	json.Unmarshal(pokemonByteValue, &pokemon)

	fmt.Println(pokemon.Id, pokemon.Name)	// 143 Snorlax
}

pokemon.json

{
    "id": 143,
    "name": "Snorlax"
}