[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 引数に渡した構造体に割り当てます。