shikumika’s diary

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

【Power Automate】JSONの値取得サンプル(カスタム オブジェクトに変換で抽出)

Power Automate Desktopには、JSONから値を抽出するために「JSON をカスタム オブジェクトに変換」という機能があります。カスタムオブジェクトに変換後、データを取得する事例として、【Power Query】エクセルで複数のJSON形式のデータをインポートして整理と同じサンプルファイルで、JSONの値を取得してみました。

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

内容:

事例の前提

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

shikumika.org

手順

全体像

事例で説明するPower Automate Desktopのフローの全体像は次の3ステップです。

  1. ファイルからテキストを読み取る
  2. JSONをカスタムオブジェクトに変換
  3. 「変数の設定」で、値抽出

ファイルからテキストを読み取る、JSONをカスタムオブジェクトに変換、変数の抽出

JSONの値取得事例のフロー全体像

1.ファイルからテキストを読み取る

画面左側のアクションメニューの「ファイル」のグループから、「ファイルからテキストを読み取る」を選択し、JSONのデータファイルを指定します。

事例では、前述サンプルにある「diff_2023-09-29_2023-09-29_21.json」を指定しています。

ファイルパス等を指定指定します

ファイルからテキストを読み取る

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

アクションメニューの「変数」のグループから、「JSONをカスタムオブジェクトに変換」を選択し、上記の手順1で生成された変数 FileContents を設定しています。

事例の設定画面は次のとおりです。

FileContents を設定

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

このようにカスタムオブジェクトに変換後、生成された変数 JsonAsCustomObject の内容を確認すると、次のように代入されています。

名前と値

変数の値(JsonAsCustomObject)

さらに、名前 announcement の「詳細表示」をクリックすると下記が表示されます。

#とアイテムの一覧

announcement の「詳細表示」

さらに、例えば、#0の「詳細表示」をクリックすると次のように、データが格納されています。画面上部で、['announcement'][0] の値であることも分かります。

['announcement'][0]の内容

#0の「詳細表示」

3.「変数の設定」で、値抽出

カスタムオブジェクからの値抽出の事例として、上記の手順2の変数で確認した['announcement'][0] にある名前「address」の値を抽出する場合は、次のように記載します。

%JsonAsCustomObject['announcement'][0]['address']%

画面のイメージは次のとおりです。

%JsonAsCustomObject['announcement'][0]['address']% を入力

「変数の設定」の事例

このフローを実行すると、生成された変数 NewVar に次のとおり「address」の値が取得されていました。

「address」の値(住所)が取得できている

NewVarの値

補足説明

上記手順のとおり、JSONをカスタム オブジェクトに変換することで、データ抽出できるので、ループ処理で抽出したい内容でインデックス番号を変更するなどで値取得もできます。

 

以上、Power Automate Desktopで、JSONの値取得サンプル(カスタム オブジェクトに変換で抽出)でした。