Power AppsでJSONを扱う完全ガイド:ParseJSON関数とデータ変換テクニック
Power AppsでのJSON解析と操作方法を詳しく解説。ParseJSON関数の使い方、データ型変換、実践的なサンプルコードまで包括的に紹介します。
Info
Power AppsでのJSON操作をマスターするための完全ガイドです。ParseJSON関数の基本的な使い方から実践的な応用例まで、詳しく解説します。
JSONとは何か?
JSON(JavaScript Object Notation)は、データ交換の標準的な形式として幅広く使用されています。APIの応答、外部システムとの連携、設定ファイルなど、現代のアプリケーション開発では避けて通れない存在です。
{
"name": "田中太郎",
"age": 30,
"department": "開発部",
"skills": ["React", "Power Apps", "Azure"],
"active": true,
"lastLogin": "2025-08-07T10:30:00Z"
}
Power AppsにおけるJSON操作の重要性
Power Appsでは、以下のシーンでJSONデータの処理が必要になります:
外部API連携
REST APIから取得したJSONデータをアプリで利用
Power Automate連携
フローから返されるJSONデータを処理
データ永続化
複雑なオブジェクトをJSON形式で保存
システム間連携
異なるシステム間でのデータ交換
ParseJSON関数の基本
構文と基本的な使い方
ParseJSON
関数は、JSON文字列をPower Appsで扱えるオブジェクトに変換する核となる関数です。
ParseJSON(JSONString [, Type])
引数の説明:
JSONString
: 解析したいJSON形式の文字列(必須)Type
: 返すオブジェクトの型指定(省略可能)
実際の使用例
// JSON文字列
Set(jsonString, "{ "name": "田中太郎", "age": 30 }");
// ParseJSONで解析
Set(parsedData, ParseJSON(jsonString));
// プロパティにアクセス
Text(parsedData.name) // "田中太郎"
Value(parsedData.age) // 30
Untyped objectについて
ParseJSON関数は「Untyped object」を返します。これは、Power Appsがデータの型を自動判定できないオブジェクトのことです。そのため、実際に値を使用する際には適切な変換関数を使用する必要があります。
データ型変換の詳細
文字列型への変換
Text(ParseJSON(jsonString).name)
数値型への変換
Value(ParseJSON(jsonString).age)
真偽値型への変換
Boolean(ParseJSON(jsonString).active)
日付型への変換
DateTimeValue(ParseJSON(jsonString).lastLogin)
日付形式について
JSON内の日付文字列は、ISO 8601形式(例:2025-08-07T10:30:00Z)である必要があります。他の形式の場合は、まずText()関数で文字列に変換してから、DateValue()やDateTimeValue()を使用してください。
複雑なデータ構造の処理
レコード(オブジェクト)の処理
// JSON例
{
"user": {
"name": "田中太郎",
"department": "開発部"
}
}
// 取得方法
Set(userData, ParseJSON(jsonString).user);
Text(userData.name) // "田中太郎"
Text(userData.department) // "開発部"
配列(テーブル)の処理
配列の処理は、ForAll
関数と組み合わせて行います。
// JSON例
{
"employees": [
{ "name": "田中太郎", "age": 30 },
{ "name": "佐藤花子", "age": 25 },
{ "name": "山田次郎", "age": 35 }
]
}
// テーブル形式に変換
Set(
employeesTable,
ForAll(
Table(ParseJSON(jsonString).employees),
{
Name: Text(ThisRecord.Value.name),
Age: Value(ThisRecord.Value.age)
}
)
)
実践的な応用例
Power Automateとの連携
Power Automateでフロー作成
JSONデータを返すPower Automateフローを作成します。
{
"status": "success",
"data": {
"total": 1250,
"items": [
{
"id": 1,
"name": "商品A",
"price": 1000
},
{
"id": 2,
"name": "商品B",
"price": 1500
}
]
}
}
Power AppsでフローEWOLFを呼び出し
// フローを実行してJSONを取得
UpdateContext({
flowResult: YourFlowName.Run()
});
JSONデータの解析と利用
// ステータスチェック
If(
Text(ParseJSON(flowResult).status) = "success",
// 成功時の処理
Set(
productData,
ForAll(
Table(ParseJSON(flowResult).data.items),
{
ID: Value(ThisRecord.Value.id),
ProductName: Text(ThisRecord.Value.name),
Price: Value(ThisRecord.Value.price)
}
)
),
// 失敗時の処理
Notify("データの取得に失敗しました", NotificationType.Error)
);
Web APIからのデータ取得例
// Power Automateで郵便番号APIを呼び出し、結果をJSONで取得
UpdateContext({
addressResult: GetAddressByZip.Run(textZipCode.Text)
});
// JSONレスポンスの解析
If(
!IsBlank(addressResult),
Set(
addressInfo,
ParseJSON(addressResult)
);
// 住所情報の表示
UpdateContext({
Prefecture: Text(addressInfo.results.0.address1),
City: Text(addressInfo.results.0.address2),
Town: Text(addressInfo.results.0.address3)
})
);
エラーハンドリングとベストプラクティス
IfError関数との組み合わせ
IfError(
// JSON解析を試行
Set(parsedData, ParseJSON(jsonString)),
// エラーが発生した場合
Notify("JSONの解析に失敗しました", NotificationType.Error);
Set(parsedData, Blank())
);
パフォーマンスの最適化
With(
{
parsed: ParseJSON(jsonString)
},
// parseされたデータを複数箇所で利用
{
Name: Text(parsed.name),
Age: Value(parsed.age),
Department: Text(parsed.department),
Skills: ForAll(
Table(parsed.skills),
Text(ThisRecord.Value)
)
}
);
よくある課題と解決策
課題1: プロパティ名が動的な場合
動的なプロパティ名(例:日付が含まれるキー)を持つJSONの処理が困難
{
"2025-08-01": { "value": 100 },
"2025-08-02": { "value": 150 },
"2025-08-03": { "value": 200 }
}
課題2: 大きなJSONデータの処理
パフォーマンスに注意
非常に大きなJSONデータ(数千レコードなど)を一度に処理すると、アプリのパフォーマンスが低下する可能性があります。以下の対策を検討してください:
- データをページネーション(分割取得)する
- 必要最小限のフィールドのみを取得する
- Power Automate側で事前にデータを加工する
課題3: 型の不一致
// 数値が文字列として格納されている場合
IfError(
Value(ParseJSON(jsonString).numericValue),
0 // エラー時はデフォルト値を使用
);
// 真偽値の安全な変換
If(
Or(
Text(ParseJSON(jsonString).boolValue) = "true",
Value(ParseJSON(jsonString).boolValue) = 1
),
true,
false
);
まとめ
Power AppsでのJSON操作は、以下のポイントを押さえることが重要です:
ParseJSON関数の理解
JSON文字列をUntyped objectに変換する基本関数
適切な型変換
Text(), Value(), Boolean()などの変換関数を使用
複雑な構造の処理
ForAll()関数で配列を、ドット記法でネストしたオブジェクトを処理
エラーハンドリング
IfError()関数を使用した堅牢な例外処理
パフォーマンス最適化
With()関数でのキャッシュ、適切なデータ構造の選択
次のステップ
JSONの基本操作をマスターしたら、次は以下にチャレンジしてみてください:
- Microsoft Graph APIとの連携
- 複雑なデータ変換ロジックの実装
- リアルタイムデータ処理
- カスタムコネクタの作成
Power AppsでのJSON操作をマスターすることで、外部システムとの連携やデータ処理の可能性が大きく広がります。ぜひ実際のプロジェクトで活用してみてください!
💭この記事はいかがでしたか?
あなたの感想やご意見をお聞かせください。今後のコンテンツ改善の参考にさせていただきます。
📤この記事をシェア
この記事が役に立ったら、ぜひ他の人にも共有してください!
⚠️ 記事の内容は投稿時点での情報です。最新の情報については公式サイト等でご確認ください。
🔄 内容の正確性には注意を払っていますが、誤りがある場合はお知らせください。