фильтровать полезную нагрузку по некоторым значениям и удалять другую - PullRequest
0 голосов
/ 02 ноября 2018

у меня есть следующее требование это входные данные мне нужно разрешить только statusEvent.type: "Proof_approved" >

{
    "statusEvent": {
        "type": "PROOF_APPROVED",
        "status": "WAITING_FOR_INPUT",
        "eventDate": "2010-11-11T07:00:00Z",
        "modifyDate": "2010-11-11T07:00:00Z",
        "userName": "educator@school.edu (educator%40school.edu)",
        "userOrgId": "1321231",
        "quoteLineId":"testid1"
        "packageConfiguration": [
            {
                "packageId": [
                    "AIM_PACKAGE1"
                ],
                "component": [
                    "Handbook"
                ],
                "fieldName": [
                    "Upload Handbook Document"
                ],
                "assetUrl": [
                    "sflydamlocation.handbookfilename1.pdf"
                ]
            }
        ]
    }

}

выложено как:

(ниже должна быть только полезная нагрузка с типом "type": "PROOF_APPROVED",)

{
  "name": payload.statusevent.userName,
  "orderItems": [
    {
      "quoteLineId": payload.statusevent.quoteLineId,
      "package": payload.statusevent.packageconfiguration
    }
  ]
}

1 Ответ

0 голосов
/ 14 ноября 2018

Если этот входной JSON был массивом, вы можете использовать filter для фильтрации записей. Что-то вроде:

%dw 2.0
output application/json
---
payload filter ($.statusEvent.'type'=="PROOF_APPROVED") map{
      "quoteLineId": $.statusEvent.quoteLineId,
      "package": $.statusEvent.packageConfiguration
}
...