0

I want to convert my json list of data into an array

I tried using pluck and flatten but I got confused with the expression

I want to convert below json. Here relatedPartList and deliverableFileList are coming multiple times but I want to put it into an array.

{
"documentRevisionList": {
          "entityId": "854598400000480352532DA50006EFDB",
          "deleted": "false",
          "revision": "A",
          "revisionSequenceNumber": "0",
          "latestRevision": "true",
          "title": "PC FOR EBIZ TESTING",
          "status": "Active",
          "relatedPartList": 
          {
            "tcpn": "145154-1",
            "partRevision": "K",
            "relationshipVerified": "true"
          },
          "relatedPartList": {
            "tcpn": "271598-000",
            "partRevision": "O",
            "relationshipVerified": "true"
          },
          "relatedPartList": {
            "tcpn": "825281-000",
            "partRevision": "O",
            "relationshipVerified": "true"
          },
          "deliverableFileList": {
            "entityId": "854598400000480352532E3B000760FE",
            "url": "https://dmtecdev.us.tycoelectronics.com/dmtec/documentDelivery/getFile?deliverableId=854598400000480352532E3B000760FE",
            "fileName": "ENG_PC_10072013-2_A_PC.pdf",
            "fileLanguage": "English",
            "fileType": "pdf",
            "fileSize": "13631",
            "fileAttached": "true"
          },
          "deliverableFileList": {
            "entityId": "000000000000F4E6561BFAB600055FA1",
            "url": "https://dmtecdev.us.tycoelectronics.com/dmtec/documentDelivery/getFile?deliverableId=000000000000F4E6561BFAB600055FA1",
            "fileName": "ENG_PC_10072013-2_A(830530).docx",
            "fileLanguage": "English",
            "fileType": "docx",
            "fileSize": "12969",
            "fileAttached": "true"
          }
        }
        }

I want this type of response

"documentRevisionList": {
          "entityId": "854598400000480352532DA50006EFDB",
          "deleted": "false",
          "revision": "A",
          "revisionSequenceNumber": "0",
          "latestRevision": "true",
          "title": "PC FOR EBIZ TESTING",
          "status": "Active",
          "relatedPartList":
          [ 
          {
            "tcpn": "145154-1",
            "partRevision": "K",
            "relationshipVerified": "true"
          },
          {
            "tcpn": "271598-000",
            "partRevision": "O",
            "relationshipVerified": "true"
          },
          {
            "tcpn": "825281-000",
            "partRevision": "O",
            "relationshipVerified": "true"
          }
          ]
          "deliverableFileList": [{
            "entityId": "854598400000480352532E3B000760FE",
            "url": "https://dmtecdev.us.tycoelectronics.com/dmtec/documentDelivery/getFile?deliverableId=854598400000480352532E3B000760FE",
            "fileName": "ENG_PC_10072013-2_A_PC.pdf",
            "fileLanguage": "English",
            "fileType": "pdf",
            "fileSize": "13631",
            "fileAttached": "true"
          },
          {
            "entityId": "000000000000F4E6561BFAB600055FA1",
            "url": "https://dmtecdev.us.tycoelectronics.com/dmtec/documentDelivery/getFile?deliverableId=000000000000F4E6561BFAB600055FA1",
            "fileName": "ENG_PC_10072013-2_A(830530).docx",
            "fileLanguage": "English",
            "fileType": "docx",
            "fileSize": "12969",
            "fileAttached": "true"
          }]
        }
Ven
  • 2,011
  • 1
  • 13
  • 27

1 Answers1

0

This seems to be a simple case of using the * selector.

%dw 2.0
output application/json
---
{
  documentRevisionList: {
    entityId: payload.documentRevisionList.entityId,
    deleted: payload.documentRevisionList.deleted,
    ...
    relatedPartList: payload.documentRevisionList.*relatedPartList,
    deliverableFileList: payload.documentRevisionList.*deliverableFileList
  }
}

Bonus points: you could set a variable to payload.documentRevisionList for less verbose expressions.

aled
  • 21,330
  • 3
  • 27
  • 34