Power Automate Desktopには、JSONから値を抽出するために「JSON をカスタム オブジェクトに変換」という機能があります。カスタムオブジェクトに変換後、データを取得する事例として、【Power Query】エクセルで複数のJSON形式のデータをインポートして整理と同じサンプルファイルで、JSONの値を取得してみました。
使用のツールは「Power Automate Desktop」(version 2.39.306.23341)です。
内容:
事例の前提
JSONのデータサンプルは、前述の以下で利用した、公表情報ダウンロード|国税庁インボイス制度適格請求書発行事業者公表サイトで公開されているデータです(ダウンロードファイル内にある「\02_Web-API機能\03_取得期間指定\03_JSON」)を使用)。
手順
全体像
事例で説明するPower Automate Desktopのフローの全体像は次の3ステップです。
- ファイルからテキストを読み取る
- JSONをカスタムオブジェクトに変換
- 「変数の設定」で、値抽出
1.ファイルからテキストを読み取る
画面左側のアクションメニューの「ファイル」のグループから、「ファイルからテキストを読み取る」を選択し、JSONのデータファイルを指定します。
事例では、前述サンプルにある「diff_2023-09-29_2023-09-29_21.json」を指定しています。
2.JSONをカスタムオブジェクトに変換
アクションメニューの「変数」のグループから、「JSONをカスタムオブジェクトに変換」を選択し、上記の手順1で生成された変数 FileContents を設定しています。
事例の設定画面は次のとおりです。
このようにカスタムオブジェクトに変換後、生成された変数 JsonAsCustomObject の内容を確認すると、次のように代入されています。
さらに、名前 announcement の「詳細表示」をクリックすると下記が表示されます。
さらに、例えば、#0の「詳細表示」をクリックすると次のように、データが格納されています。画面上部で、['announcement'][0] の値であることも分かります。
3.「変数の設定」で、値抽出
カスタムオブジェクからの値抽出の事例として、上記の手順2の変数で確認した['announcement'][0] にある名前「address」の値を抽出する場合は、次のように記載します。
%JsonAsCustomObject['announcement'][0]['address']%
画面のイメージは次のとおりです。
このフローを実行すると、生成された変数 NewVar に次のとおり「address」の値が取得されていました。
補足説明
上記手順のとおり、JSONをカスタム オブジェクトに変換することで、データ抽出できるので、ループ処理で抽出したい内容でインデックス番号を変更するなどで値取得もできます。
以上、Power Automate Desktopで、JSONの値取得サンプル(カスタム オブジェクトに変換で抽出)でした。