3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power Automateでオブジェクト配列から情報を抜き出す

Last updated at Posted at 2022-07-02

以下のような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"
    }
]

アレイフィルターを利用する

他にもやり方はあると思いますが、アレイフィルターを利用することで解決しました。

アクションの追加でアレイで検索するとアレイのフィルター処理というアクションを追加できます。

スクリーンショット 2022-07-02 20.39.40.png

nameというキーを設定できるので、nameがURLという文字列と一致したら... という条件を設定します。

スクリーンショット 2022-07-02 20.43.36.png

これでnameがURLのオブジェクトのvalueを取り出せます。

{
 name: "URL",
 value: "https://hogehoge.com/xxxx/yyy"
}

以降のアクションでvalueという名前の"動的なコンテンツ"を扱うことができるようになります。

スクリーンショット 2022-07-03 0.12.43.png

変数に格納する

変数に格納するところまでやってみます。

階層構造が深くなってしまうので変数に一旦格納して別の場所で呼び出すなどをしないと処理の可読性が良くない印象です。

変数の初期化

初期化をしないと変数を扱うことができないです。プログラミング的ですね、ノーコード系ツールなのでもうちょっと柔軟でも良い気もします。

アクションで変数と検索し、変数を初期化するを選択します。

最上位の階層じゃないと初期化できないので注意です。何かの入れ子構造の内部では利用できません。

スクリーンショット 2022-07-03 0.17.45.png

スクリーンショット 2022-07-02 20.50.27.png

ここで変数の名前を設定できます。URLとしました。
また種類は文字列を選択します。

スクリーンショット 2022-07-03 0.20.23.png

これで変数宣言(変数初期化)しておくことで、アレイフィルターをかけたあとのvalueの中身を変数に格納することができます。

文字列変数に追加のアクションで格納できます。

スクリーンショット 2022-07-02 21.01.37.png

あとはアレイフィルターの入れ子構造の外でもこのURLの値を利用できるので色々と条件の振り分けなどにも利用できます。

所感

アレイフィルターを使うやり方以外にももっとスマートなやり方があるような気もします。入れ子構造っぽくなってしまうのが正直操作しにくいですね。

あと、変数に格納するときに初期化が必要なのは気をつけたいです。普通にコード書く時は無いと気持ち悪いはずなのにPower Automateだと手間に感じるのは不思議ですね。

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?