- JSONのキー名を調べたい
この記事では、そんな方にJSONに特定のキーがあるか確認する方法を紹介します。
この記事を読むと、JSONの処理に強くなります。
フローの動き
JSONに指定のキーが存在するか確認します。
このJSONから品名のキーがあるか判定してみます。
{ "品名": "メロン", "色": "緑" }
フローを動かすと存在するを表すtrueが表示されました。
true
フローの説明
JSONのキーを判定するアクションはありません。
setPropaty関数の結果でキーが存在するか判断します。
ここから説明するアクションはコピペできます。
アクションの追加にある「自分のクリップボード」を開いてこのコードを貼り付けて使用してください。
{"id":"c5a9aca0-862b-4e55-9c74-e875762eadf8","brandColor":"#8C3900","connectionReferences":{},"connectorDisplayName":"制御","icon":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KIDxwYXRoIGQ9Im0wIDBoMzJ2MzJoLTMyeiIgZmlsbD0iIzhDMzkwMCIvPg0KIDxwYXRoIGQ9Im04IDEwaDE2djEyaC0xNnptMTUgMTF2LTEwaC0xNHYxMHptLTItOHY2aC0xMHYtNnptLTEgNXYtNGgtOHY0eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+DQo=","isTrigger":false,"operationName":"スコープ","operationDefinition":{"type":"Scope","actions":{"JSON":{"type":"Compose","inputs":{"品名":"メロン","色":"緑"},"runAfter":{},"metadata":{"operationMetadataId":"6a91fd09-8e73-44ca-a7ee-3df1c6f83c06"}},"存在するか確認したいキー":{"type":"Compose","inputs":"品名","runAfter":{"JSON":["Succeeded"]},"metadata":{"operationMetadataId":"4e63acd4-8f1a-4991-a3eb-f1a2faa64f97"}},"キーの追加テスト":{"type":"Compose","inputs":"@addProperty(outputs('JSON'),outputs('存在するか確認したいキー'),'test')","runAfter":{"存在するか確認したいキー":["Succeeded"]}},"キー存在判定":{"type":"Compose","inputs":"@equals(outputs('キーの追加テスト'),null)","runAfter":{"キーの追加テスト":["Succeeded","Failed"]},"description":"存在する場合true"},"条件":{"type":"If","expression":{"equals":["@outputs('キー存在判定')","@true"]},"actions":{"作成":{"type":"Compose","inputs":"@{outputs('存在するか確認したいキー')}は既に存在します。","runAfter":{}}},"runAfter":{"キー存在判定":["Succeeded"]},"else":{"actions":{"作成_2":{"type":"Compose","inputs":"@{outputs('存在するか確認したいキー')}は存在しません。","runAfter":{}}}}}},"runAfter":{},"metadata":{"operationMetadataId":"b250d937-99dd-4b29-803f-6e5fa2aed852"}}}
データ操作の「作成」アクションを追加。※名前を「JSON」に変更
{ "品名": "メロン", "色": "緑" }
データ操作の「作成」アクションを追加。※名前を「存在するか確認したいキー」に変更
品名
データ操作の「作成」アクションを追加。※名前を「キーの追加テスト」に変更
addProperty(outputs('JSON'),outputs('存在するか確認したいキー'),'test')
このアクションはJSONに新しいキーと値を追加する関数です。
キーが既に存在する場合はエラーになって結果はnullになるので次のアクションでnullか判断させます。
outputs('キーの追加テスト') = null
存在しないキーを指定した場合は関数に従いキーと値が追加されます。
データ操作の「作成」アクションを追加。※名前を「キー存在判定」に変更
equals(outputs('キーの追加テスト'),null)
アクション右上のメニューから「実行条件の構成」を選択。
「に失敗しました」へチェックを入れて完了。
これで1つ前のアクションがエラーになってもフローは動き続けます。
フローを動かすと「品名」は存在するのでtrueになりました。
ちなみにフローの最後にコントロールの「条件」をつけてみました。
trueだった場合は「品名は既に存在します。」と表示させています。
まとめ
PowerAutomateのJSONに特定のキーがあるか確認する方法を紹介しました。
JSONのキーを判定するアクションは無いので関数のエラーを判断として使いました。関数エラーと「実行条件の構成」はセットで使うと新しい動きができるので参考にしてください。
PowerAutomateのおすすめ記事
人気ページ
Apply to eachの使い方
アレイのフィルター処理の使い方
日付関数の使い方
エラーを無視する方法
メールの内容をExcelへ転記
メール本文から名前を抽出
>>PowerAutomateの記事一覧を見る<<
お気に入り必須!公式ページ
Microsoft Power Automate
式関数のリファレンス
コネクタのリファレンス
Excel Online (Business)のリファレンス