【Go言語】キーの数が変わる動的な構造のJSONをUnmarshalする方法

Go言語

この記事ではGo言語で、キーの数が変動する動的な構造のJSONをUnmarshalする方法を紹介します。

スポンサーリンク

キーの数が動的な構造のJSONをUnmarshalする

今回扱うJSONは次のような構造です。

値はすべてintですが、キーの数がそれぞれ異なります。

{"Today": 3090, "Yesterday": 414}
{"Today": 553, "Yesterday": 138845, "Tomorrow": 15643}
{"Today": 56109}

こういったJSONをUnmarshalする際には、mapを使用します。

今回はキーがstring、値がint64のmapを使用します。

コード例を下記に示します。

var foo map[string]int64

bytes := []byte(data)

if err := json.Unmarshal(bytes, &foo); err != nil {
  fmt.Fatal(err)
}

※この方法は、値がすべて同じ型の場合しか使えない点に注意ください。