json処理

json処理について

ネットワーク関連で利用することになるjson処理。
使う場面が多いので

  • json.Unmarshal
  • json.Marshal

json.Unmarshal

json → struct
ネットワークから取得したjsonをstructの形式にデータを入れる。

  • keyのフィールド名とstructの名前は一致していればOK
  • 頭文字の大文字、小文字もどちらもOK
type Person struct {
  Name  string
  Age   int
}

func main() {
  b := []byte(`{"name": "aiueo", "Age": 20, none: 'none'}`)
  var p Person
  if err := json.Unmarshal(b, &p); err != nil {
    log.Fatal(err)
  }
  fmt.Println(p)
}

json.Marshal

struct → json

  • どのような名前でエンコードするかのキーを指定できる
  • バイトとなるのでデバッグ時に確認する際はstringに変換する
type Person struct {
  Name  string
  Age   int
}