Power AutomateでJSONデータを解析する際、Parse JSONアクションが予期せずエラーを返すことがあります。原因がフロー設計の問題なのか、実行環境の制約なのか、判断に困る方も多いでしょう。本記事では、JSON解析でつまずいたときに、まず確認すべき利用環境の切り分けポイントを整理します。クラウドフローとデスクトップフローの違い、ブラウザの種類、アカウントの権限といった要素を順に見ていくことで、問題の所在を素早く特定できるようになります。
【要点】この記事で確認すること
- 最初に見る場所: フローがクラウドフローかデスクトップフローか、そしてJSONデータのソースが何かを確認します。
- 切り分けの軸: クラウドフローとデスクトップフローのParse JSONの挙動の違い、ブラウザの種類とバージョン、アカウントのライセンスと権限、コネクタの種類(HTTP vs カスタムコネクタ)を軸に原因を絞ります。
- 注意点: 会社PCでブラウザの拡張機能やセキュリティポリシーがJSON解析に影響を与える場合があります。また、Microsoft 365管理センターの設定変更は管理者に依頼してください。
ADVERTISEMENT
目次
JSON解析エラーが発生する主なシナリオ
JSON解析で問題が起きるシナリオは多岐にわたります。まずは、自分のフローがどのパターンに該当するかを把握しましょう。
外部APIからのレスポンス解析
HTTPアクションで外部APIを呼び出し、そのレスポンスをParse JSONで解析するケースは最も一般的です。しかし、APIの仕様変更やネットワークのタイムアウト、認証エラーなどにより、期待したJSON構造が得られないことがあります。特に、レスポンスがHTMLエラーページになっている場合、Parse JSONはスキーマ不一致で失敗します。まずはHTTPアクションの出力を確認し、実際に受信しているデータを把握してください。
ExcelやCSVから作成したJSONの解析
ExcelのテーブルやCSVファイルをJSONに変換して解析する場合、データに改行やカンマ、引用符が含まれていると、生成されるJSONが不正になる可能性があります。特に、Power Automateの「JSONの作成」アクションを使うときに、手動で文字列を組み立てていると、エスケープ漏れが発生しやすいです。例えば、二重引用符が正しくエスケープされていないと、Parse JSONで「無効なJSONプリミティブ」エラーが発生します。
入れ子構造や配列を含むJSON
JSONが深い入れ子構造や複雑な配列を含む場合、スキーマの生成がうまくいかず、Parse JSONアクションの設定段階でエラーが出ることがあります。特に、Power Automateのスキーマ自動生成機能が正確に構造を認識できないケースがあります。その場合は、手動でスキーマをJSONサンプルから生成し直すか、スキーマを直接編集する必要があります。
クラウドフローとデスクトップフローのParse JSONアクションの違い
Power Automateにはクラウドフローとデスクトップフローの2種類があり、JSON解析の挙動に違いがあります。この違いを理解することで、環境に応じた適切な対処ができます。
| 項目 | クラウドフロー | デスクトップフロー |
|---|---|---|
| Parse JSONアクションの配置 | アクション一覧から直接追加 | 「データ操作」グループにあり、専用のアクションを使用 |
| スキーマ生成方法 | JSONサンプルから自動生成、または手動入力 | 同様の機能があるが、生成結果がやや異なる場合がある |
| 対応データ型 | string, number, boolean, object, array | 同様だが、一部の複合型で制限あり |
| エラーメッセージ | 「無効なJSON」「スキーマ不一致」など明確 | 「JSONの解析に失敗しました」と抽象的な場合がある |
スキーマの生成方法
クラウドフローでは、Parse JSONアクションの設定画面で「サンプルから生成」ボタンをクリックし、実際のJSONデータを貼り付けることでスキーマを自動生成できます。デスクトップフローでも同様の機能がありますが、生成されるスキーマの厳密さが異なり、特に数値と文字列の区別が甘い場合があります。例えば、JSON内の値が「123」という文字列の場合、クラウドフローは正しくstring型と認識しますが、デスクトップフローではnumber型としてスキーマを生成し、実行時に型不一致エラーが発生することがあります。このような場合は、手動でスキーマの型を修正してください。
エラーメッセージの違い
クラウドフローのエラーメッセージは比較的具体性が高く、「必須プロパティ’xxxx’が見つかりません」といった内容が表示されます。一方、デスクトップフローでは「JSONの解析に失敗しました」とだけ表示され、詳細な原因が分かりにくいことがあります。デスクトップフローでエラーが発生した場合は、まずJSONデータそのものを確認し、スキーマと一致しているかをチェックする必要があります。
ブラウザ環境がJSON解析に与える影響
Power Automateはブラウザで動作するため、ブラウザの種類や設定がJSON解析に間接的に影響することがあります。特に、フローのテスト実行画面でのデータ表示や、カスタムコネクタの動作に影響が出るケースがあります。
ブラウザの種類とバージョン
Power Automateは最新のMicrosoft Edge、Google Chrome、Mozilla Firefox、Safariをサポートしていますが、古いバージョンではJavaScriptエンジンの制限により、JSONのパースに失敗することがあります。特に、JSON.parse()の動作がブラウザによって微妙に異なるため、大量のデータや特殊なUnicode文字を含むJSONで問題が発生することが報告されています。最新版に更新してください。また、Internet Explorerはサポート対象外で、使用すると予期しないエラーが発生するため、必ず別のブラウザに切り替えてください。
拡張機能とセキュリティポリシー
会社PCでは、セキュリティソフトやブラウザ拡張機能がPower Automateの動作を妨げることがあります。例えば、広告ブロッカーやスクリプトブロッカーが一部のJavaScriptを無効化し、JSON解析結果の表示に影響を与える可能性があります。また、グループポリシーで特定のホストへのアクセスが制限されていると、カスタムコネクタからのレスポンスが正常に取得できず、Parse JSONが失敗することもあります。こうした場合は、シークレットモードで動作を確認するか、管理者にポリシーの適用状況を問い合わせてください。
開発者ツールを使ったJSONレスポンスの確認手順
- Power Automateのフロー編集画面を開き、該当するHTTPアクションの設定を確認します。
- フローを保存し、テスト実行を行います。
- テスト結果の画面でHTTPアクションの出力を展開し、「body」の内容をコピーします。
- ブラウザの開発者ツール(F12)を開き、Consoleタブで以下のコードを実行してJSONを検証します。
JSON.parse('ここにコピーしたJSONを貼り付け') - エラーが出た場合は、JSONの構文エラーの位置が表示されるので、修正してから再度フローに反映します。
アカウントと権限の確認手順
JSON解析が失敗する原因として、アカウントのライセンスやコネクタの使用権限が不足しているケースがあります。特に、カスタムコネクタやプレミアムコネクタを利用している場合は注意が必要です。
Power Automateライセンスの種類
Power Automateには無料の「Office 365付属ライセンス」と「有償のPer User/Per Flowライセンス」があります。無料ライセンスでは、標準コネクタのみ使用可能で、HTTPアクションやカスタムコネクタは利用できません。そのため、HTTPアクションを使用してJSONデータを取得する場合、Parse JSONアクション自体は使えても、データ取得に失敗することがあります。利用可能なコネクタの一覧は、Power Automateの「コネクタ」ページで確認できます。
コネクタ使用権限
特定のコネクタを使用するには、管理者がデータ損失防止ポリシー(DLP)で許可している必要があります。例えば、カスタムコネクタがDLPでブロックされていると、そのコネクタを通じて取得したJSONデータはParse JSONで正しく処理できないことがあります。エラーメッセージに「コネクタが無効です」や「アクセスが拒否されました」と表示される場合は、管理者にDLPの設定を確認してもらってください。
カスタムコネクタの利用許可
カスタムコネクタを作成して外部APIと連携する場合、そのコネクタが正しく認証されているか確認する必要があります。特に、OAuth2.0認証を使用している場合、トークンの有効期限切れやスコープの不足により、JSONレスポンスが空になったりエラーが返ったりすることがあります。カスタムコネクタのテスト画面で実際のAPIコールを実行し、レスポンスが正常なJSON形式かどうかを確認してください。
よくある失敗パターンと対処法
実際の現場で頻繁に発生するJSON解析の失敗パターンをいくつか紹介します。これらのパターンを事前に知っておくことで、原因特定の時間を大幅に短縮できます。
JSONスキーマの不一致
Parse JSONアクションに設定したスキーマと実際のJSONデータの構造が一致しない場合、エラーが発生します。例えば、スキーマで存在すると定義したプロパティが実際のJSONに含まれていない、あるいはデータ型が異なる(スキーマではstringなのに実際はnumber)といったケースです。対策としては、フローのテスト実行時にHTTPアクションの出力をコピーし、新しいParse JSONアクションで「サンプルから生成」を実行して最新のスキーマを取得することが有効です。
特殊文字のエスケープ漏れ
JSON内に改行(\n)、タブ(\t)、バックスラッシュ(\\)、二重引用符(\”)などの特殊文字が含まれている場合、正しくエスケープされていないとパースに失敗します。特に、ユーザー入力データをそのままJSONに埋め込む場合に発生しやすいです。対策として、JSONデータを生成する前に、Power Automateの「置換」アクションを使用して特殊文字をエスケープしてください。例えば、二重引用符を「\”」に、改行を「\n」に置き換えます。
日付形式の誤認識
JSON内の日付文字列がISO 8601形式ではない場合、Parse JSONは文字列として扱いますが、その後のフローで日付操作を行う際にエラーになることがあります。例えば、「2025-03-15」は問題ありませんが、「2025/03/15」や「03/15/2025」などの形式は誤認識の原因となります。日付データを扱う場合は、事前に共通の形式に変換しておくか、Parse JSONの後に「convertFromUtc」などの関数を使って正規化してください。
管理者に確認すべきテナント設定
上記の切り分けを試しても解決しない場合、テナント全体の設定が原因である可能性があります。以下の項目を管理者に確認してもらいましょう。
データ損失防止ポリシー(DLP)
DLPは、Power Automateのフローが特定のコネクタやサービスにアクセスすることを制限するポリシーです。JSON解析に使用しているコネクタがDLPでブロックされていないか確認してください。特に、HTTPアクションやカスタムコネクタは「ビジネスデータ」グループに分類され、適切なポリシーが適用されている必要があります。
カスタムコネクタの承認設定
組織によっては、カスタムコネクタの使用に管理者の承認が必要な場合があります。未承認のカスタムコネクタを使用すると、フローの実行時にエラーが発生したり、JSONデータが取得できなかったりします。Power Platform管理センターでカスタムコネクタの状態を確認し、必要に応じて承認を依頼してください。
ゲートウェイの設定
オンプレミスデータゲートウェイを経由してJSONデータを取得する場合、ゲートウェイの設定ミスやネットワーク障害が原因でデータが正しく取得できず、Parse JSONが失敗することがあります。ゲートウェイの状態を確認し、最新バージョンに更新されているか、またファイアウォールで必要なポートが開放されているかを管理者に確認してください。
まとめ
Power AutomateのJSON解析でつまずいたときは、まずフローの種類(クラウドフローかデスクトップフローか)とJSONデータのソースを確認し、次にブラウザ環境やアカウント権限を順にチェックすることで原因を絞り込めます。本記事で紹介した切り分け手順を実践することで、多くの問題は自力で解決できるはずです。もし解決しない場合は、具体的なエラーメッセージやフローの構成を管理者に伝えることで、迅速な対応が可能になります。日頃からJSONデータの構造を正しく把握し、スキーマと実際のデータの一致を確認する習慣をつけてください。
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
