[power automate]JSON操作を網羅してみる

JSONの操作

利用するJSON

{
    "first": "tamura",
    "last": "chaimu",
    "speak": "dasi!"
}

1. キーの追加・更新・削除

1-1. キーの追加:addProperty()

@{addProperty(variables('Person'), 'new-prop', 'new-value')}

1-2. キーの更新:setProperty()

 @{setProperty(variables('Person'), 'speak', 'nandashi?')}

1-3. キーの削除:removeProperty()

 @{removeProperty(variables('Person'), 'speak')}

1-4. 孫要素の更新:setProperty(親キー名, 子キー名, 更新値)

更新後、その子キーを含む1階層分のJSONしか返却してくれない。(JSON全体を返却してくれない)

■JSON
{
    "parent": {
        "child": {
            "grandchild": {
                "first": "tamura",
                "last": "chaimu"
            }
        }
    }
}
 @{setProperty(outputs('親子階層JSON')['parent/child/grandchild'], 'last', 'yukosai')}
 ■出力
{
    "first": "tamura",
    "last": "yukosai"
}

 

 

2. キーのアクセス

2-1. キーが含まれるか:contains()

 @{contains(variables('Person'), 'last')}

 

3. 型変換

3-1. json⇒string変換:string()

@{string(variables('Person'))}

3-2. string ⇒ json変換:json()

 @{json('{"first":"tamura", "last":"chaimu"}')}

 

4. JSONの解析

4-1. JSONの解析アクション

通常、JSONの各キーは動的なコンテンツ(GUI候補)が表示されず、outputs('jsonname')['parent/child/grandchild']という具合にキー名を指定してアクセスをする必要がある。

しかし、「JSONの解析」アクションを使うことで、動的なコンテンツ上から各キーを選択することができるようになる。

ただし、候補として中間キー(childやgrandchild)も一緒に表示されるため、JSONの規模が大きい場合、結局のところ式で指定したほうが手っ取り早いということもあるかもしれない。

■JSONの解析に使うJSONデータ
{
  "nest1": {
    "nest11": {
      "nest111": {
        "first": "tamura"
      }
    }
  },
  "nest2": {
    "nest22": {
      "nest222": {
        "last": "chaimu"
      }
    }
  }
}