この記事では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)
}
※この方法は、値がすべて同じ型の場合しか使えない点に注意ください。