[Go] JSON ファイルを読み込む
作成日: 2018年03月07日
パッケージ encoding/json
の json.Unmarshal
関数を使用すると、任意の構造体に割り当てることができます。
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
type JsonContent struct {
Users []User `json:"users"`
}
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
f, err := ioutil.ReadFile("./sample.json")
if err != nil {
panic(err.Error())
}
jsonContent := &JsonContent{}
err = json.Unmarshal(f, &jsonContent)
if err != nil {
panic(err.Error())
}
fmt.Printf("%#v", jsonContent)
}
sample.json
の中身は下記です。
{
"users": [
{
"name": "Tom",
"age": 15
},
{
"name": "Bob",
"age": 30
}
]
}
実行結果は下記となります。
&main.JsonContent{Users:[]main.User{main.User{Name:"Tom", Age:15}, main.User{Name:"Bob", Age:30}}}
説明
ioutil.ReadFile
でファイルを読み込みます。json.Unmarshal
で第 2 引数に渡した構造体に割り当てます。