Skip to main content
JoltInfan
Gold ⭐️
August 29, 2024
Solved

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

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"
        }
   }
}]

JoltInfan
JoltInfanAnswer
Gold ⭐️
August 29, 2024

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

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

2 replies

DianaTorres
Community Manager
Community Manager
August 29, 2024

@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.

Translate
Regards, Diana Torres, Senior Community Moderator
JoltInfan
JoltInfanAuthorAnswer
Gold ⭐️
August 29, 2024

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

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

Translate