Sidebarinfraya.workその時々の気になったこと。2020.2.9概要Goでネストが深いJsonをどう処理したら良いのか困り、やってみてわかった知見を紹介。構造体を使ってパースします。一度分かってしまえばなんてことはない。配列の部分は一番最後に書いてます。Jsonのサンプルネストとそこそこ深く配列もでてきて困ったAWSのイベントを例に進める。全文は長いの説明の中では抜粋して載せています。なってるんだ??と思う部分が出てきたら全文を確認してみてください。準備main.goと同ディレクトリにsample.jsonとして、先程のJsonを保存。データ量も少ないため手軽なio.util.ReadFileを使ってJsonファイルを読み込みます。ファイル読み込みだけfileにsample.jsonを読み込みます。自動で構造体を生成JSON-to-Goの左側(JSON)部分にJsonを貼り付けて構造体を生成してみます。構造体の中に構造体を定義していくと配列が出てきた時に扱いづらかったです。実際そうしてみたら確かに使いやすくなりました。この出力結果を利用しつつ、自前で構造体を定義していきます。&ev)fmt.Println(ev.ResponseElements.InstancesSet.Items[0].InstanceID)fmt.Println(ev.ResponseElements.InstancesSet.Items[0].CurrentState.Name)}実行結果i-01b39875c1d8031f9stopping感想AWSのJsonパースするの大変そうで逃げてたけど向き合えばなんてことはなかっった。Lambdaで通知を作ってた時のJsonパースメモでした。infraya.work。