Power Automate のクラウドフローで処理を作成していると、JSON の値を利用するために「JSON の解析」を用いることが度々あります。
このとき、元の JSON の形によっては、解析後の値が判別しにくいことがあります。そうした場合には、人が目で見て分かりやすいように、解析して得られる値に名前を付けることができます。
JSON の解析の結果が使いづらいパターン
使いづらいなと感じるのは、次のような JSON を解析し利用する場合です。
{ "Data1":{ "Value": 12345 }, "Data2":{ "Value": 12345 }, "Data3":{ "Value": 12345 }, "Data4":{ "Value": 12345 } }
この JSON のデータを用いて、JSON の解析アクションのスキーマを設定するため、「サンプルから生成」の機能を利用すると、次のようなスキーマが作られます。
{ "type": "object", "properties": { "Data1": { "type": "object", "properties": { "Value": { "type": "integer" } } }, "Data2": { "type": "object", "properties": { "Value": { "type": "integer" } } }, "Data3": { "type": "object", "properties": { "Value": { "type": "integer" } } }, "Data4": { "type": "object", "properties": { "Value": { "type": "integer" } } } } }
これによって Power Automate は、JSON の構造を理解し、フローの処理で値を利用できるようになるのですが、各値は次のように表示されます。
それぞれ Data1、Data2、Data3、Data4 の中に Value という値があるのですが、フローの作成画面で表示される選択肢からは、どの Value なのか判断が付かないというわけです。
値に名前を付ける
そこで、JSON スキーマを編集することで、あとから利用しやすいように、値に名前を付けておくことができます。
{ "type": "object", "properties": { "Data1": { "type": "object", "properties": { "Value": { "type": "integer", "title": "Value of Data1" } } }, "Data2": { "type": "object", "properties": { "Value": { "type": "integer", "title": "Value of Data2" } } }, "Data3": { "type": "object", "properties": { "Value": { "type": "integer", "title": "Value of Data3" } } }, "Data4": { "type": "object", "properties": { "Value": { "type": "integer", "title": "Value of Data4" } } } } }
変更した箇所は、それぞれの Value を示している記述に、title
を追加しています。この title
の値によって、Value に名前を付けて、フローの中で扱いやすくしています。
このように、以降のアクションで値を利用する際、指定した名前で選択できるようになります。
さいごに
ちょっとの工夫と手間で、すごく使いやすくなるので、この方法は覚えておいて損はないと思いました。これは良い。