shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Automate】Power FxでJSONの値取得サンプル(配列内もIndex関数で取得)

    
Power Automate Desktopは、2023年12月公開のバージョン以降、Power Fx(プレビュー版)が利用可能です。今回は、Power FxでJSONの値取得サンプルです。

使用のツールは「Power Automate Desktop」(version 2.39.306.23341)です。

内容:

 

事例の前提

事例で利用するJSONのデータサンプルは、今回も以下で利用した、公表情報ダウンロード|国税庁インボイス制度適格請求書発行事業者公表サイトで公開されているデータです(ダウンロードファイル内にある「\02_Web-API機能\03_取得期間指定\03_JSON」)を使用)。サンプルファイルの詳細等は以下で確認してください。

shikumika.org

取得例

1.JSONをカスタムオブジェクトに変換

従来の方法(Power Fxを有効にしない方法)と同様に、JSONをカスタムオブジェクトに変換します。

shikumika.org

JSON文字列をカスタムオブジェクトに変換後、生成された変数(事例では JsonAsCustomObject) の内容を確認すると、次のように代入されています。

名前と値があり、announcementに詳細がある

変数の値(JsonAsCustomObject)

このような場合は、「変数の設定」

=JsonAsCustomObject.count

とすれば、この事例では名前「count」の値 ”6”が取得できます。

 

このサンプルデータの場合、名前「announcement」に配列でデータ代入されています。

この場合、次のようにすることで、下位にあるレコード目の名前「address」の値を取得できます。

=Index(JsonAsCustomObject.announcement,1).address

Indexのレコード番号は 1 から始まります。

Index関数でレコード番号を指定している

Index関数を使用した事例

補足説明

Power Fx での JSON の使用に関する全般の説明は次のとおりです。
今回、Power Automate Desktopでは、ParseJSONの関数が未定義となりました。未対応なのか設定誤りなのかの検証はできておらず、原因不明です。

learn.microsoft.com

また、配列内のレコード取得で使用するIndex関数の説明は次のとおりです。

learn.microsoft.com

 

今回の事例のPower Automate Desktopのフロー全体像は次のとおりです。

実行後の画面で、変数に値も格納できています。

Power FxでJSONの値取得するフロー例

以上、Power Automate DesktopのPower FxでJSONの値取得サンプルでした。

「Power Fxが有効(プレビュー)」にすると変数の設定方法等も変わるので注意が必要です。