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 に名前を付けて、フローの中で扱いやすくしています。
このように、以降のアクションで値を利用する際、指定した名前で選択できるようになります。
さいごに
ちょっとの工夫と手間で、すごく使いやすくなるので、この方法は覚えておいて損はないと思いました。これは良い。

