0

I want to remove null values rows from the payload. skipNullOn is working if the output type is application/json but it's not working with application/java output and getting error like "Option skipNullOn is not valid. Valid options are: ". This is expected but I want a solution where I can remove/skip keys with null values with Java output.

Input:

    {
      "date1": "2021-02-121",
      "date2": "2021-02-12  00:00:00",
      "date3": null
    }

Expected Output:

    {
      "date1": "2021-02-12",
      "date2": "2021-02-12T00:00:00",
    }

Script:

    %dw 1.0
    %output application/java skipNullOn="everywhere"
    %function transformDate(dt) (dt as :date {format: "dd/MM/yyyy"} as :string {format: "yyyy-MM-dd"} when ((sizeOf (dt)) == 10) otherwise null)
    %function changeDateTime(cdt) (cdt as :localdatetime {format: "dd/MM/yyyy HH:mm:ss"} as :string {format: "dd/MM/yyyy HH:mm:ss"})
    %function isEmpty(value) (value!=null and value!="")

    ---
    {
         (date1: transformDate(payload.date1)) when (isEmpty(payload.date1)),
         (date2: changeDateTime(payload.date2) when (isEmpty(payload.date2)),
         (date3: changeDateTime(payload.date3) when (isEmpty(payload.date3))
    }
aled
  • 21,330
  • 3
  • 27
  • 34
Devendra
  • 219
  • 2
  • 22
  • Is there a chance to use Mule 4? This would be much easier to solve with DataWeave 2 – aled Aug 26 '21 at 19:20
  • Does this answer your question? [How to ignore empty objects in DataWeave Mule esb](https://stackoverflow.com/questions/39924049/how-to-ignore-empty-objects-in-dataweave-mule-esb) – aled Aug 26 '21 at 19:38

0 Answers0