Support Questions

Find answers, ask questions, and share your expertise

Apache NiFi need to add square brackets around a specific JSON object

avatar
New Contributor

I'm new to NiFi, and I've been struggling with wrapping square brackets around a specific JSON object. Below is my JSON input, my desired JSON output and my attempted JoltTransformJSON shift operation spec. I'm really close, but I'm getting a duplicate of the "financialSystemFields" object.

Please advise, and many thanks in advance.

JSON Input:
[{
"type" : "APPROPRIATION",
"subType" : "ADMINISTRATIVE",
 "duration" : "1",
"retiredDate" : null,
"expiredDate" : "2023-09-30 00:00:00.0",
"closedDate" : "2028-09-30 00:00:00.0",
"association" : null,
"financialSystemFields" : {
      "FundId" : "01234NFWJ",
      "fundedProgram" : null,
      "projectDescription" : "NO FUN WITH JOLT"
   }
}]

Current JSON Output:
[{
"type": "APPROPRIATION",
"subType": "ADMINISTRATIVE",
"duration": "1",
"retiredDate": null,
"expiredDate": "2023-09-30 00:00:00.0",
"closedDate": "2028-09-30 00:00:00.0",
"association": null,
"financialSystemFields": [{
      "FundId": "01234NFWJ",
      "fundedProgram": null,
      "projectDescription": "NO FUN WITH JOLT"
   }, {
      "FundId": "01234NFWJ",
      "fundedProgram": null,
      "projectDescription": "NO FUN WITH JOLT"
   }]
}]

Desired JSON Output:
[{
"type": "APPROPRIATION",
"subType": "ADMINISTRATIVE",
"duration": "1",
"retiredDate": null,
"expiredDate": "2023-09-30 00:00:00.0",
"closedDate": "2028-09-30 00:00:00.0",
"association": null,
"financialSystemFields": [{
      "FundId": "01234NFWJ",
      "fundedProgram": null,
      "projectDescription": "NO FUN WITH JOLT"
  }]
}]

Jolt Operation:
[{
  "operation": "shift",
  "spec": {
       "*": {
           "@": "[&1]",
           "@(0,financialSystemFields)": "[&].financialSystemFields"
        }
   }
}]

1 ACCEPTED SOLUTION

avatar
New Contributor

I've figured out what needs to be done. The following fixed the issue.

[{
"operation": "cardinality",
"spec": {
"financialSystemFields": "MANY"
}
}]

View solution in original post

2 REPLIES 2

avatar
Community Manager

@JoltInfan Welcome to the Cloudera Community!

To help you get the best possible solution, I have tagged our NiFi experts @MattWho @vaishaakb who may be able to assist you further.

Please keep us updated on your post, and we hope you find a satisfactory solution to your query.


Regards,

Diana Torres,
Community Moderator


Was your question answered? Make sure to mark the answer as the accepted solution.
If you find a reply useful, say thanks by clicking on the thumbs up button.
Learn more about the Cloudera Community:

avatar
New Contributor

I've figured out what needs to be done. The following fixed the issue.

[{
"operation": "cardinality",
"spec": {
"financialSystemFields": "MANY"
}
}]