Power Automate로 계층이 깊고 같은 키가 많이 있는 JSON을 가능한 한 편하게 처리

Power Automate에서 다음과 같이 계층이 깊고 동일한 키가 많은 JSON을 처리하고 싶습니다. ※샘플은 콜라보 플로우 Webhook 로 송신되는 JSON을 간략화한 것.
{
  "contents": {
    "fidCustomerCode": {
      "label": "01",
      "value": "01",
      "type": "text"
    },
    "fidCustomerName": {
      "label": "コラボ建設株式会社",
      "value": "コラボ建設株式会社",
      "type": "text"
    },
  },
  "request_date": "2020-07-25T14:22:51Z",
  "document_id": 1,
}

좋아! 그리고 이것을 「JSON의 해석」에 걸치면, 이런 느낌으로 같은 변수가 대량으로 되어 버립니다.

사용하기 힘들다! 테 유카 모르겠어.
그럴 때는 triggerBody() 을 사용하여 자력으로 JSON 계층을 지정합니다.

triggerBody는 런타임 트리거의 출력 (다른 시스템에서 Webhook에서 전송 된 데이터를 "HTTP 요청 수신시"에서 수신했다고 가정하면 Webhook에서 보낸 JSON)을 반환하므로 triggerBody () 다음에 JSON 계층 구조를 지정합니다.
triggerBody()?['contents']?['fidCustomerName']?['value']

※JSON에 키가 존재하지 않는 경우의 에러 회피를 위해, ? 연산자를 사용해 NULL를 돌려주도록 하고 있습니다. 키가 없는 경우에 액션을 에러로 하고 싶은 경우는 ? 연산자를 사용하지 않고 키를 지정합니다.

실제로 플로우의 설계 화면에서 세트 할 때는, 아래와 같이 「동적 컨텐츠의 추가」로부터 「식」패널을 선택해 triggerBody()에 계속되는 JSON 계층을 지정합니다.

이제 첫 번째 샘플에있는 "contents.fidCustomerName.value"의 값 "협업 건설 주식회사"를 얻을 수 있습니다.

덧붙여서 식 패널에서 triggerBody()를 세트한 후의 화면에서는 이런 식으로 함수 「triggerBody()」가 표시됩니다만・・

흐름을 저장한 후 다시 열면 이와 같이 표기가 바뀝니다.
이것은 표기가 바뀌었을 뿐, 특히 동작에의 영향은 없는 것 같습니다.


우리는 Power Automate 초보자이므로 더 좋은 방법이 있다는 것을 모른다. 좋은 방법이 있으면 누군가를 가르쳐 주시면 기뻐합니다.

좋은 웹페이지 즐겨찾기