Within Dataflow activity, I've got a JSON file at source with various hierarchical objects within it.

Next, I have a dataflow activity which anonymises the data using the same hierarchical structure as the source JSON file (e.g. addressLine1 =
case(isNull(event.payload.content.payload.subject.requester.address.addressLine1), toString(null()),'****')
Then it rolls up into the upper hierarchical object of 'address'
@(addressLine1=case(isNull(event.payload.content.payload.subject.requester.address.addressLine1), toString(null()),'****'),
addressLine2=case(isNull(event.payload.content.payload.subject.requester.address.addressLine2), toString(null()),'****'),
addressLine3=case(isNull(event.payload.content.payload.subject.requester.address.addressLine3), toString(null()),'****'),
country=event.payload.content.payload.subject.requester.address.country,
county=case(isNull(event.payload.content.payload.subject.requester.address.county), toString(null()),'****'),
knownCareHome=event.payload.content.payload.subject.requester.address.knownCareHome,
localAuthorityCode=event.payload.content.payload.subject.requester.address.localAuthorityCode,
lsoa=event.payload.content.payload.subject.requester.address.lsoa,
odsLocationCode=case(isNull(event.payload.content.payload.subject.requester.address.odsLocationCode), toString(null()),'****'),
postcode=case(isNull(event.payload.content.payload.subject.requester.address.postcode),toString(null()),
case(length(event.payload.content.payload.subject.requester.address.postcode)==8,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),8,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)==7,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),7,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)==6,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),6,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)==5,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),5,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)<=4,trim(left(event.payload.content.payload.subject.requester.address.postcode,4)))))))),
postcodeSource=event.payload.content.payload.subject.requester.address.postcodeSource,
town=case(isNull(event.payload.content.payload.subject.requester.address.town), toString(null()),'****'))
Then, further it rolls up into the upper hierarchical object of 'requester', and so forth
@(address=@(addressLine1=case(isNull(event.payload.content.payload.subject.requester.address.addressLine1), toString(null()),'****'),
addressLine2=case(isNull(event.payload.content.payload.subject.requester.address.addressLine2), toString(null()),'****'),
addressLine3=case(isNull(event.payload.content.payload.subject.requester.address.addressLine3), toString(null()),'****'),
country=event.payload.content.payload.subject.requester.address.country,
county=case(isNull(event.payload.content.payload.subject.requester.address.county), toString(null()),'****'),
knownCareHome=event.payload.content.payload.subject.requester.address.knownCareHome,
localAuthorityCode=event.payload.content.payload.subject.requester.address.localAuthorityCode,
lsoa=event.payload.content.payload.subject.requester.address.lsoa,
odsLocationCode=case(isNull(event.payload.content.payload.subject.requester.address.odsLocationCode), toString(null()),'****'),
postcode=case(isNull(event.payload.content.payload.subject.requester.address.postcode),toString(null()),
case(length(event.payload.content.payload.subject.requester.address.postcode)==8,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),8,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)==7,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),7,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)==6,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),6,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)==5,rpad(left(event.payload.content.payload.subject.requester.address.postcode,4),5,'*'),
case(length(event.payload.content.payload.subject.requester.address.postcode)<=4,trim(left(event.payload.content.payload.subject.requester.address.postcode,4)))))))),
postcodeSource=event.payload.content.payload.subject.requester.address.postcodeSource,
town=case(isNull(event.payload.content.payload.subject.requester.address.town), toString(null()),'****')),
organisationContactFirstName=case(isNull(event.payload.content.payload.subject.requester.organisationContactFirstName),toString(null()),'****'),
organisationContactLastName=case(isNull(event.payload.content.payload.subject.requester.organisationContactLastName),toString(null()),'****'),
organisationId=event.payload.content.payload.subject.requester.organisationId,
organisationName=event.payload.content.payload.subject.requester.organisationName,
organisationRole=event.payload.content.payload.subject.requester.organisationRole,
organisationType=event.payload.content.payload.subject.requester.organisationType)
Now, the issue I'm having is when it produces/writes the JSON file at Sink. I want to essentially, tidy the JSON file. If there are any NULL/Empty objects within the file then to remove these completely. i.e. 'address' object is empty/NULL so needs to be removed from the JSON file. Because 'address' is empty/NULL, 'requester' object should also be removed from the JSON file too, and so forth. The point is, if the lower object(s) are NULL/Empty then remove the object as you go up the object hierarchy

Any advise to assist me on this matter would be greatly appreciated ;)