[Go言語] JSONをパースする [json.Unmarshal][encoding/json]

2019年9月6日

Go

encoding/jsonパッケージを利用してJSONをパースしてみます。

 

例として下記のリンクから取得できるJSONを取得し、userIdを除く、id・title・completed を表示させてみます。※リンクではリクエストパラメータとしてuserId=1を指定しています。

 

https://jsonplaceholder.typicode.com/todos?userId=1

 

最終的に下記のような形式で出力させます。

 

 

コード説明


 

基本的な流れとしては、JSONを格納するための構造体を作成し、実際のJSONデータを読み込み。そのデータ([]byte型)をjson.Unmarshalで構造体に格納します。

 

12〜16行目

JSONを格納する構造体を定義しています。id・title・completedのみを利用するのでuserIdは設定していません。つまり全てのキーを記述する必要はありません。「json:"id"」はタグと呼ばれ、 構造体のフィールドとJSONのキーを対応させるために指定します。ただしフィールド名がキーと同じ(大文字・小文字は関係なし)場合は、特に指定する必要はありません。下記のようにタグを指定しなくてもビルドは通ります。

 

20〜44行目

GETによるリクエストに関しては下記のページをご覧下さい。

 

GoでGETによるリクエスト [parameter][http.Get][http.Client]

 

47行目

json.Unmarshalを利用してTodo構造体に格納しています。bodyは[]byte型であることを確認して下さい。

 

 

 

参照ページ


 

Package json

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー