以下のようなJSONデータが送られてきたときにhttps://hogehoge.com/xxxx/yyy
というURLを抜き出すやり方メモです。
以下のようなデータを処理してみます。
実際にはTeamsからの通知で使ってます。
参考: https://qiita.com/n0bisuke/items/d5da6776d42ab1fce7a3
[
{
"name": "投稿者",
"value": "うこ"
},
{
"name": "URL",
"value": "https://hogehoge.com/xxxx/yyy"
},
{
"name": "Status",
"value": "Not started"
}
]
アレイフィルターを利用する
他にもやり方はあると思いますが、アレイフィルターを利用することで解決しました。
アクションの追加でアレイで検索するとアレイのフィルター処理
というアクションを追加できます。
name
というキーを設定できるので、nameがURL
という文字列と一致したら... という条件を設定します。
これでnameがURLのオブジェクトのvalueを取り出せます。
{
name: "URL",
value: "https://hogehoge.com/xxxx/yyy"
}
以降のアクションでvalue
という名前の"動的なコンテンツ"を扱うことができるようになります。
変数に格納する
変数に格納するところまでやってみます。
階層構造が深くなってしまうので変数に一旦格納して別の場所で呼び出すなどをしないと処理の可読性が良くない印象です。
変数の初期化
初期化をしないと変数を扱うことができないです。プログラミング的ですね、ノーコード系ツールなのでもうちょっと柔軟でも良い気もします。
アクションで変数と検索し、変数を初期化する
を選択します。
最上位の階層じゃないと初期化できないので注意です。何かの入れ子構造の内部では利用できません。
ここで変数の名前を設定できます。URL
としました。
また種類は文字列
を選択します。
これで変数宣言(変数初期化)しておくことで、アレイフィルターをかけたあとのvalueの中身を変数に格納することができます。
文字列変数に追加
のアクションで格納できます。
あとはアレイフィルターの入れ子構造の外でもこのURL
の値を利用できるので色々と条件の振り分けなどにも利用できます。
所感
アレイフィルターを使うやり方以外にももっとスマートなやり方があるような気もします。入れ子構造っぽくなってしまうのが正直操作しにくいですね。
あと、変数に格納するときに初期化が必要なのは気をつけたいです。普通にコード書く時は無いと気持ち悪いはずなのにPower Automateだと手間に感じるのは不思議ですね。