Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

【初心者向け】Power Apps & AutomateのJSON活用法|基本構造からデータ連携のコツまで解説

PowerPlatform+JSONのメイン画像

Power AppsやPower Automateを使い始めたばかりの時は、用意されているボタンやアクションを組み合わせるだけで、十分に便利なツールを作ることができます。

しかし、より複雑な自動化に挑戦しようとすると、「標準の機能だけではあと一歩手が届かない……」という場面が出てきます。そんな時、外部のサービスから最新データを取ってきたり、別のシステムと連携したりするために必要になるのが「JSON(ジェイソン)」というデータの形式です。

難しそうな名前ですが、中身は「コンピューター同士がやり取りするための、整理整頓されたメモ書き」のようなものです。外部から届いたデータがどのようなルールで書かれているかを知ることで、欲しい情報を自由自在に取り出せるようになります。

この記事では、Power AppsやPower Automateの基本機能だけを使った開発から一歩進み、次のステップへ進むための「JSONの基本」を解説します。

関連記事:Power AppsとPower Automateとは?それぞれの違いやできることを活用事例とともに徹底解説

\ Power Automate初心者必見 /

JSONとは?

JSONとは、Java Script Object Notationの略称です。

プログラミング言語であるJavaScriptの オブジェクト表記法で、データを簡単に「交換」、「保存」するために用いた軽いテキスト基盤のデータ交換標準です。

JSONはもともとはプログラミング言語から生まれた書き方ですが、今ではその「シンプルさ」が評価され、世界中のシステム同士のやり取りで使われています。

JSONの活用がおすすめの方

JSONは、専門的なプログラミングスキルがなくても、Power AutomateやPower Appsの機能を一歩先へ進められるため、特に以下のような方におすすめです。

  • 標準のボタンやアクションだけではやりたい業務自動化が実現できず、限界を感じている現場の担当者
  • 外部のWebサービス(天気、ニュース、他社ツールなど)からデータを取得して、社内システムと連携させたい方
  • Power Appsで大量のデータを処理する際、動作が重くなる課題を解決し、より迅速で快適なアプリを作りたい企業

このような課題を抱えている場合、JSONを活用することで、業務の効率化やアプリの品質向上を比較的短期間で実現できる可能性があります。まずは簡単なデータの解析から試験的に導入し、仕組みを理解しながら少しずつ活用範囲を広げていくとよいでしょう。

JSONの基本構造

JSONは名前だけ見ると複雑に認識されますが、データを簡単に「交換」、「保存」するため作られた軽量テキストデータ形式であり規則は簡単です。

オブジェクト(Object)

データを【“名前” : “値”】 の順番に記載し【 {} 】の中に入れます。名前と値には必ず【””】を付けます。

JSONオブジェクトの形式の例

配列(Array)

複数のデータを順序に並べる時に、【 [] 】を使用します。配列の中ではオブジェクトが入ることがあります。

JSONアレイの形式の例

JSONのデータタイプ

  • 文字列(String):「””」を利用して値を””の中に入れて使用します。

例) ”名前”:”太郎”  → ”名前”という変数に”太郎”という文字列を入れています。

  • 数字(Number):「””」を付けずに数字のみ使用します。

例) ”年齢”: 30 → “年齢”という変数に30という数字を入れています。

  • ブーリアン(Boolean):「真(true)」または「偽(false)」を表示して「””」を付けずに使用します。

例) ”学生”:false → 学生ではないという場合に使用します。

  • Null:値が空白のことを表示します。

例) ”車”:null → “車”という変数が空白であることを表示します。

Power AutomateでのJSON活用

Power Automate を使って「業務の自動化」を行い外部サービスとのデータのやり取りが必要になってきた場合、JSONを使用します。例えば、以下のような場面で使用します。

JSONが使われる場面

  • 天気アプリから今日の降水確率や気温を取得する
  • ニュースサイトから特定のキーワードを含む記事を収集する
  • Microsoft Forms の回答内容を詳細に解析する

これらのような、特定のサービスから送られて来るデータは、コンピューターが処理しやすい「JSON」という形式で構成されています。

【天気アプリから今日の降水確率や気温を取得する】

サンプル業務例)毎日8時に特定地域の天気を確認し、社内に通知をする必要があります。天気を確認するために、天気のアプリおよびサイトに接続して地域を変更しながら天気を確認し記録します。

外部APIより天気のデータ取得の例

自動化実装方法)毎日8時に気象庁から発信されている情報を収集するロボットを作成します。気象庁からのデータはJSON形式で送られてくるため、受信し、その後データを加工しTeams等を用いて情報発信します。

天気を記録する業務を自動化すると毎日8時にフローが実行され、気象庁よりJSON形式でデータが送られて来ます。JSONデータを人が見やすく処理をしてメールまたはTeamsなどに送ります。

【ニュースサイトから特定のキーワードを含む記事を収集する】

サンプル業務例)毎日業界に関連されている特定の情報を収集する必要があります。収集する情報のキーワードを検索エンジンに検索しニュースを一つずつ開いて内容を確認し、情報を収集し、社内に通知しますます。

外部APIよりデータを取得しTeamsに配信する例

自動化実装方法)キーワードでニュースを検索するAPIを利用することで、外部サービスより収集されたデータを受け取ることができます。この際のデータはJSON形式です。データを加工し、社内Teamsに送ります。

毎朝8時にキーワードでニュースを検索するAPIを利用すると外部のサービスより収集されたデータがJSONの形式に送られてきます。このJSONデータを処理してTeamsに送ります。

【Microsoft Forms の回答内容を詳細に解析する】

サンプル業務例)社員のIT活用レベルを把握しスキルトレーニングを行うためアンケートを実施します。設問を作成し印刷して社員に配って作成完了後に、回収します。

MS Formsよりデータ取得の例

自動化実装方法)Microsoft Formsを利用し、社員にアンケートフォームのリンクを送り回答してもらいます。回答してもらったデータはJSON形式で受信されますので処理をし、Teamsなどにアンケートの結果を送ります。

\ Power Automate初心者必見 /

JSONデータの解析方法

Power Automateでは主にJSON形式で「受信」したデータを「解析」し、「活用」しています。「受信」、「解析」、「活用」を3種類の段階で説明します。

JSONデータの受信

APIを用いて外部から取得したデータは基本的には本文はJSON形式で記載されています。しかし、Power Automateは受信したデータのJSONをそのまま認識できなく、単純に長いテキストとして認識してしまいます。

参考:ワークフローから外部 HTTPS エンドポイントを呼び出す – Azure Logic Apps | Microsoft Learn

JSONデータの解析

受信したデータはPower AutomateでJSONデータとして認識出来ないためデータ形式を変更する必要があります。この作業を解析といいます。Power Automateでは、のデータ操作の「JSON の解析」アクションを使用します。

Power AutomateフローよりJSONの解析アクションの選択

JSON の解析にはコンテンツとスキーマの入力欄があります。

  • コンテンツ:解析をする対象です。受信されたデータの本文(Body)を入れます。
  • スキーマ:解析をするための設計図です。
JSONの解析の例

スキーマは規則を作成しようとすると難しく見えますが、「サンプルから生成(サンプル ペイロードを使用してスキーマを生成する)」という機能があるためスキーマを簡単に作成できます。

参考:データの操作を行う – Power Automate | Microsoft Learn

Power Automate でデータ操作を使用する – Power Automate | Microsoft Learn

「JSONの解析」アクションを使用後には、届いたJSONデータの型によって使い方が2パターンに分かれます。JSONデータが単一のデータである場合は、「オブジェクト」となり、JSONデータが配列形式のデータの場合は「配列」となります。

参考:それぞれのアクションに適用を使用して項目の一覧を定期的に処理する – Power Automate | Microsoft Learn

JSONデータを加工するアクション

受信データを「JSONの解析」でバラバラに分解するのとは反対に、自分たちで「JSONの形にデータを組み立てる」アクションも存在します。それが「データ操作」のアクションです。

配列データなどを扱う時に「データ操作」にあるアクションを利用してデータを軽く作成し、効率的に処理することができます。

1.「選択」 アクション:必要な値のみ抽出

JSONデータを取得すると様々な配列データが取得されます。このデータの中で必要なデータだけを処理をする際に使用するのが「選択」アクションです。元データの配列より必要な特定のキーの値のみ抽出して軽い配列で作成します。

選択アクションの例

2.「アレイのフィルター処理」 アクション:条件に合うデータのみフィルター

取得したデータの中で特定の条件を満たすデータのみを抽出するためのアクションが「アレイのフィルター処理」アクションです。普通のテキストデータとしてPower Automateを使用するとループに「条件」アクションを入れて一つずつJSON項目を検査し、条件に合うデータのみ抽出しますが、「アレイのフィルター処理」アクションを使用すると指定の条件に合うJSONデータのみ残すことができます。「アレイのフィルター処理」を利用するとループに「条件」を使用することよりフローを効率的に使用できます。

アレイフィルター処理アクションの例

3.「結合」 アクション:配列のデータをテキストに合わせる

JSON形式のからデータは配列の形式です。

JSONの配列形式から区切り文字を入れてテキストの形式に変換する時に使うのが「結合」です。

結合アクションの例

4.「作成」 アクション:JSONの作成

作成のアクションを利用して入力欄に【{}】を入力し、【キー:値】の形式にデータを作成することでデータをJSON形式に入力できます。フローを作成しテストする時にデータが上手く作成できたか確認すること時にはとても使いやすいです。

作成アクションの例

Power Automateで使われるJSON関連関数

Power Automateには、JSONデータをさらに便利に扱うための専用の「関数」も用意されています。

添付ファイルの処理

JSONは基本的にテキストフォーマットです。もし、画像やPDFのようなファイルをJSON形式に変換して使用する場合には、ファイルをテキスト形式のBase64にエンコーディングする必要があります。

  • base64(文字列):テキストをBase64に暗号化

文字列をBase64形式にエンコーディングします。

Base64とは、データを受け渡しするための技術の一つです。

JSON関連関数、Base64の変換例
  • base64ToString(Base64値):Base64をテキストに変換

Base64テキスト形式のデータをテキスト形式に戻します。

JSON関連関数、Base64ToStringの変換例
  • base64ToBinary(Base64値):Base64を実際ファイルに変換

受信したBase64テキスト形式のデータを実際のファイルに変換する際に使用します。

JSON関連関数、Base64ToBinaryの変換例

形式変換関数

  • JSON(): 文字列をJSONに変換

文字列、XMLデータをJSON形式の値またはオブジェクトに変換

JSON()関数の使用例
  • string():JSONのオブジェクトを文字列に変換

JSONデータを文字列に変換し、テキスト形式にします。

string()関数の使用例
  • xml():JSON形式をXMLに変換

JSONデータをXML形式に変換します。

xml()関数の使用例

JSONオブジェクトを操作する関数

  • addProperty():既存のJSONに新しいデータを追加

既に存在するJSON形式データに新しいキーと値を追加します。

JSONにデータを追加するaddProperty()関数の使用例
  • removeProperty():JSONからデータを削除

データを送信する時に、必要ではないデータを削除して送信します。

送信時に、キーを削除して送信することが出来ます。

JSONにデータを削除するremoveProperty()関数の使用例
  • setProperty():既存のJSONデータに上書き

既に存在するJSONの特定プロパティ値を他の値にアップデートします。

JSON形式のデータを変更するset()関数の使用例

参考: JSON 関数 – Power Platform | Microsoft Learn

\ Power Automate初心者必見 /

Power AppsでのJSON

Power Appsでアプリを作る際、標準のコネクタやテーブルだけでは、データの扱いが少し不便に感じることがあります。「大量のデータをまとめて別の画面に渡したい」「外部サービスと複雑な情報をやり取りしたい」といった場面ではJSONが役に立ちます。

データの連携

Power Appsは単独で使われる時より外部のサービスやデータベースと一緒に使う場面の方が多いです。この時にPower Apps内部のデータを外部システムが理解できるようにJSON形式でデータのやり取りを行います。

PowerAppsからPowerAutomateにデータを送信する例

Power Appsへの負荷

大量のデータレコードを処理する時に通常の配列データの処理の場合はデータをループして処理します。ですが、大量のデータをループすることはPower Appsの性能を落とす原因になります。

JSON配列を使用するとループなく処理を完結することが出来る場面があります。

 

PowerAppsからPowerAutomateにデータを送信する例

複雑なデータ構造の処理

SharePointまたはDataverseのレコードから1:N関係のデータを扱う時に、JSONを活用すると全てのデータを文字列に圧縮させて一つのテキストフィールドに保存できます。

Power Appsにて主に使用されるJSON関連関数

Power Appsでは、データを外部システムへ送信したり、受信したデータを扱ったりする場面でJSONを使用します。ここでは、Power Appsでよく利用されるJSON関連関数の役割や使い方を解説します。

JSON:データをJSON形式化

Power Apps内部のコレクションやレコードデータを外部に送信する時にはテキスト形のJSON形式に変換する必要があります。

colExpensesにJSON形式データを入力する例

経費請求アプリからユーザーが入力した複数の経費内訳のコレクションがあります。(colExpenses)

上記のcolExpensesをJSON関数を利用して変換し、gblJson変数に保存します。

Set(gblJson, JSON(colExpenses));

gblJson変数を確認すると以下のように表示されます。

colExpensesに入れたデータをgblJson変数に保存した例

JSONFormat:JSONにフォーマットオプションを追加

JSON関数でデータを変換すると、通常はすべての文字が1行に書き出されるため、人間が見るには少し不便です。また、画像データを含めたい場合や、特定のデータ形式を扱いたい場合には、JSON関数に「オプション(JSONFormat)」を付け加えて指示を出します。

  • JSONFormat.Compact : デフォルト

JSON関数に別途のオプションを指定しない時に使用されます。

JSONFormat.Compactの形式例
  • JSONFormat.IndentFour:JSON文字列を階層構造に視覚的表示

JSONデータの確認、ログの確認の時に、視認性のため使用されます。

JSONFormat.IndentFourの形式例
  • JSONFormat.IncludeBinaryData:データに含まれたイメージ、オーディオなどのメディアファイルをテキスト形式のBase64にエンコーディングしてJSONに挿入

Power Apps内で使われる画像や署名データなどを外部に送信する時、必須的に使用されます。

JSONFormat.IncludeBinaryDataの形式例
  • JSONFormat.IgnoreUnsupportedTypes:Power Appsデータの中でJSONに変換できないタイプが存在する時に、エラーの代わりに該当のデータを無視して変換。

認識出来ないデータが原因でアプリがダウンされることを防止する時に、使用されます。

JSONFormat.IgnoreUnsupportedTypesの形式例
  • JSONFormat.FlattenValueTables:値が一つのテーブルをJSONに変換する時に要らないオブジェクト構造を抜いて単純な配列に変換

Power Appsで[1,2,3]のような単純配列を作成すると内部では[{“Value”: 1},{“Value”: 2},{“Value”: 3}]の形で作成されます。この配列を外部に送信する時にJSONFormat.FlattenValueTablesオプションを使用しないと宛先から認識ができなくてエラーが発生します。このオプションを使用することでデータが単純な配列に変換され[1,2,3]のJSON配列が作成されます。

JSONFormat.FlattenValueTablesの形式例

参考:JSON 関数 – Power Platform | Microsoft Learn

ParseJSONで外部データを読み込む

外部から送られてきたJSONデータは、そのままではPower Appsにとって「ただの長い文字列」にすぎません。これをアプリの中で「名前」や「日付」として自由に使えるようにするのが、ParseJSON関数です。

ParseJSON 関数でデータを解析した直後のデータは、Power Appsにとって「中身が何かわからない」状態です。Power Appsにてデータを使用する際は型の宣言が必要です。そのため、「中身は入っているけれど、データの種類が確定していない一時的な状態」をUntyped Objectと呼びます。

  • Untyped Object

Power Appsでは前述のようなUntyped Objectの特徴があるため、JSONデータを解析した後に、値を使用する時には必ず適切な関数を利用してデータタイプを指定する必要があります。このデータタイプの指定がされていなければPower Appsからはデータが認識できなくて画面に表示できません。

例えば、天気APIを呼出して以下のような簡単なJSONテキストを受信した場合があります。

外部データから受信したJSON形式データの例

上記の受信したデータは解析をして変数に入れてデータタイプを指定し、使用します。

外部データから受信したJSON形式データを解析しgblTemp変数に保存する例

Set()関数を利用して変数にデータを入れます。

入れたデータを出してデータタイプを指定する時にはText(gblTemp.City), Value(gblTemp.Temp)のように指定します。

  • JSONをギャラリーに表示

ギャラリーにデータを入れる時にはテーブルの形式が必要なため、データをテーブルの形式に変換する必要があります。この時にはTable()関数を使用してデータをテーブル化します。

外部データから受信したJSON形式データを解析しテーブル化する例

データをギャラリーに入れたら上記の1.と2.のように使用出来ます。

例)Text(ThisItem.Value.City), Text(ThisItem.Value.Temp)

参考:ParseJSON 関数 – Power Platform | Microsoft Learn

JSONを扱う際の注意点

Power AppsでJSON()関数とParseJSON()関数を使用する時に注意したいルールがあります。それはこれらの関数が「アプリのデータ処理制限(委任)」の影響を受けるということです。

Power Appsには、「大量のデータを一気に処理するのは苦手」という特性があります。そのため数千件、数万件というデータをそのままJSONにしようとすると、アプリの動作が重くなったり、一部のデータが無視されたりする可能性があります。

二つの関数を使用する時には大量のデータを処理する時には事前にフィルター処理などを行う必要があります。

まとめ

最初は難しく感じるかもしれませんが、JSONは「自動化の自由度」を劇的に広げてくれる強力な味方です。

まずは小さなデータから「解析」や「作成」を試して、その便利さをぜひ体感してみてください。

この「共通言語」を少しずつ使いこなせるようになることで、あなたの開発スキルはこれまで以上に進化し、より価値のある自動化を実現できるようになるはずです。

\ Power Automate初心者必見 /

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です