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 초보자이므로 더 좋은 방법이 있다는 것을 모른다. 좋은 방법이 있으면 누군가를 가르쳐 주시면 기뻐합니다.

좋은 웹페이지 즐겨찾기