前記事でツール開発をした際
Jsonデータをエクセルに変換する必要がありました。
WebAPIのデータはたいていJson形式だそうで。
HTTP通信で取得したはいいものの
これをExcel出力するには…?
備忘録代わりに残しておこうと思います!
JsonをTableに変換
Jsonのサンプルデータ
ちょっと階層深めのJsonデータです。
これが1件のデータとします。
1件当たり、抽出したいデータは
・「担当者」は? → 山田
・「対応曜日」は? → 月曜
という事にします。
テーブルを作成
Jsonデータの
「担当者」・「対応曜日」を格納する
テーブルを作成する。
Jsonデータから必要なデータ抽出
上記で作成したカラムにデータを入れていきます。
その前にJsonデータを扱うために
便利なライブラリ「Json.net」を追加します!
下記を参考にしましたので手順はコチラから!
※VB.NETでJson形式のデータの取り扱い~Json.NETを使ってみる
HTTPレスポンスから
Jsonデータを取得する場合
デシリアライズしてサンプルデータの様な形になります。
ChildrenとSelectTokenを使って
「山田」、「月曜」を抽出しました。
Xpathみたいな特定の仕方なのかな。
並びが変動的な場合の対策や
値が無い場合はDB.Nullを返すなど
それぞれで調整は必要になると思います!
テーブル変換したJsonをエクセル出力
サンプルデータは1件でしたが
数十件データがあった場合
テーブルには数十行データが作成されます。
また2つ以上列が必要なことが多いと思います!
複数の列と数十行データが入ったテーブルを
エクセル出力するコードは
簡単にこんな感じかなと思います!
まあこんな事もできるんだな~
と思いました!