Need Jolt spec to convert the input json with dynamic field to output json

  Kiến thức lập trình

I need jolt spec for the below input json with dynamic date field and array of items. That jolt spec should convert this input json to below output json.

Input Json:

  "market": {
    "2024-04-13": [
      {
        "code": "ABC",
        "name": "Name1",
        "date": "2024-04-13T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      }
    ],
    "2024-04-14": [
      {
        "code": "DEF",
        "name": "Name2",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 233.32,
        "sold": 3
      },
      {
        "code": "EFG",
        "name": "DISCOUNT",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 300.05,
        "sold": 1
      },
      {
        "code": "MNO",
        "name": "GROUP",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 45.33,
        "sold": 3
      }
    ],
    "2024-04-15": [
      {
        "code": "POR",
        "name": "TEST",
        "date": "2024-04-15T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      }
    ]
  }
}

Output json

{
  "market": {
    "DATE": [
      {
        "code": "ABC",
        "name": "Name1",
        "date": "2024-04-13T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      },
      {
        "code": "DEF",
        "name": "Name2",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 233.32,
        "sold": 3
      },
      {
        "code": "EFG",
        "name": "DISCOUNT",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 300.05,
        "sold": 1
      },
      {
        "code": "MNO",
        "name": "GROUP",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 45.33,
        "sold": 3
      },
      {
        "code": "POR",
        "name": "TEST",
        "date": "2024-04-15T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      }
    ]
  }
}

The below Jolt spec I tried but it is not giving me exact output. It is grouping first few items, but I need them separately similar like the output json.

Jolt spec

[
 {
   "operation": "shift",
   "spec": {
     "market": {
       "*": {
         "*": {
           "code": "market[&1].code",
           "name": "market[&1].name",
           "date": "market[&1].date",
           "rev": "market[&1].rev",
           "sold": "market[&1].sold"
         }
       }
     }
   }
 }
]

LEAVE A COMMENT