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.フィールド名で指定する。