JSONとは、JavaScript Object Notationの略で、テキストベースのデータフォーマットだ。
***.jsonという形でデータファイルになる。秘密鍵などのデータを保存しておきたい時の設定ファイルとして使うことが多い。
今回は、~/workspace/json/sample.jsonを作成し、下記の情報を入力する。
{
"id":1,
"name":"usako",
"reading":"usano"
}
lsonファイルは、{ “項目”:値... }という形で記述する。
次に同階層にmain.goを作成する。
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
)
//jsonのデータ用の設計図
type Sample struct {
Id int `json:"id"`
Name string `json:"name"`
Reading string `json:"reading"`
}
func main() {
//sample.jsonをよみこんでbyteで取得する
bytes, err := ioutil.ReadFile("sample.json")
if err != nil {
log.Fatal(err)
}
//Sample構造体を持つ初期値がない変数sampleを作る。
var sample Sample
//jsonのデコードされたものを人の読める形にして変数sampleに入れる
err = json.Unmarshal(bytes, &sample)
fmt.Println(sample.Name)
}
Sample構造体のNameを指定するとusakoと表示される。
jsonファイルのデータをmain.goで呼び出す場合は、構造体を使って、フィールドにjsonファイルの各データを入れていく。
Go言語の場合は、byte型を文字列に変換する際は、string()とすればよいのだが、jsonファイルから読み込んだものを文字列に変換する場合は、json.Unmarshalを使う。
jsonのデータを格納した変数sampleは構造体になっているので、取得したいものをsample.フィールド名で指定する。




