PowerAppsでJSONデータにある取りたい値を取得する方法

PowerAppsでJSONデータにある取りたい値を取得する方法

PowerAppsでJSONデータにある取りたい値を取得する方法

社内の書籍管理アプリを徐々に形にしていっています。
その中でJSONデータから値を取得したい部分があったので取得方法です。
例のごとくこれも悩みました・・・

どんなJSONデータを取得するのか

書籍管理のため、今回はGoogle Books APIを利用します。
ユーザ登録等なしで利用できるのでとても簡単です。
まずはテストしてみます。
下記のURLをブラウザにいれてみてください。

https://www.googleapis.com/books/v1/volumes?q=isbn:9784822253691

ISBNコードが、9784822253691の書籍データの情報が表示されたと思います。
このデータを利用していきます。

カスタムコネクタをまず作成する必要があるのですが、その方法は別記事にします。

取得した値をコレクションに入れる

下記のような感じで、コレクションに取得したJSONデータをいれます。

ClearCollect(Book, JSONDATA))

Bookというコレクション名の中にこれでJSONDATAが入りました。
どんな風になったかを確認します。

  1. ファイル → コレクションをクリックします。
  2. Bookをクリックしデータを表示します。

今回取得したい値

今回取得したい値は、本のタイトル、著者、出版日付です。
どこにデータがあるのかを確認します。

たどっていくと、Book -> items -> volumeinfo にあるtitleという項目のようです。

取得するための数式

Lookup関数を利用して、下記のようにすることで値が取得できました。

LookUp(LookUp(Book,true,items).volumeInfo,true,volumeInfo).title

LookUp関数による検索結果をすべての条件としJSON上の配列をたどっていきます。
Lookupを複数回組み合わせることで最終的なValue値を取得することができました。

取得したのはここの部分です。

著者情報取得LookUp数式

その他著者情報を取得した場合の数式は下記になります。

LookUp(LookUp(LookUp(Book,true,items).volumeInfo,true,volumeInfo).authors,true,Value)

出版日付取得LookUp数式

Text(LookUp(LookUp(Book,true,items).volumeInfo,true,volumeInfo).publishedDate,ShortDate)

Lookup関数

LookUp 関数は、テーブル内で数式を満たす最初のレコードを検索します。とのことです。(MS公式より)
コレクションにはAPIから返ってきたデータが複数ありますが、そのうちの最初の1行を取得しています。

 

JSONデータがうまく扱えるとPowerAppsでできる幅が広がりますね。
無料プランだとカスタムコネクタが1個しかつくれないのが悲しいです・・・。

 

 

Power Appsカテゴリの最新記事

%d人のブロガーが「いいね」をつけました。