前回JSONから、秘密鍵などが入ったデータファイルをmain.goで読み込んだ。
今回は、複数のデータの場合、どう呼び出すか試してみる。
まず、sample.jsonに下記のコードを入力する。
[
{
"id" : 1,
"name" : "usako",
"reading" : "usano"
},
{
"id" : 2,
"name" : "kumata",
"reading" : "kumano"
}
]
JSONファイルでは、複数のデータを扱う場合は、[ ]で配列とする。その次に配列の1番目を{ }で囲う。”キー”:要素で、入力するが、最後の行は、” , ”をつけないように注意する。
main.goでは、下記のように入力する。
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
)
//設計図を作る
type Sample struct {
Id int `json:"id"`
Name string `json:"name"`
Reading string `json:"reading"`
}
//sample.jsonをよみこんでbyteで取得する
func main() {
bytes, err := ioutil.ReadFile("sample.json")
if err != nil {
log.Fatal(err)
}
//Sample構造体を持つ初期値がない変数sample作る。
var samples []Sample
//jsonのデコードされたものを人の読める形にして変数sampleに入れる
err = json.Unmarshal(bytes, &samples)
fmt.Println(samples[1].Name)
}
kumata
今回、前回と異なるのは、var samples []Sampleの部分。JSONが配列となっている場合は、構造体の型指定Sampleの前に[]をつける。
最後にfmt.Printlnで呼び出す場合は、配列の指定をする。各キーに対する値を呼び出したい場合は、配列指定[]の後に".キー"を付ける。
※JSONファイルの場合、なぜかAtomでは実行できなかったので、MING64で実行している。




