golang jsonファイル読み込み





開発環境


  • go 1.13.3


index.go


index.go
package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"log"
)

// Person ...
type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

// ListPerson ...
type ListPerson struct {
	List []Person `json:"list"`
}

func getJSON(path string) ListPerson {
	// JSONファイル読み込み
	bytes, err := ioutil.ReadFile(path)
	if err != nil {
		log.Fatal(err)
	}

	// JSONデコード
	var ListPerson ListPerson
	if err := json.Unmarshal(bytes, &ListPerson); err != nil {
		log.Fatal(err)
	}

	return ListPerson
}

func main() {
	var read = getJSON("./test.json")

	for _, value := range read.List {
		fmt.Println(value.Name)
		fmt.Println(value.Age)
		fmt.Println()
	}
}


test.json


test.json
{
  "list": [
    { "name": "taro", "age": 74 },
    { "name": "jiro", "age": 98 }
  ]
}


コマンド


bash
$ go run index.go


ホームへ