Forum Discussion
Hi @aditya.gupta41,
Try with the following expression:
{}.extend(...$.entries().map(val => {[val[0]]: val[1].map(v => {}.extend(...v.entries().map(date => date[0].contains("_DATE") && date[1] == null ? {[date[0]]: "0000-00-00"} : {[date[0]]: date[1]} )))}))
This is assuming you have one or multiple arrays in the root object, assuming the arrays have one or multiple objects. This will iterate over each array find the “_DATE” key/value pair, and if a “_DATE” happens to be null, it will change the original value with the “0000-00-00”, and put back everything into the original format.
- aditya_gupta414 years agoContributor
This didn’t worked for me
Failure: Map type does not have a method named: map, found in: …]: date[1]} ))). Perhaps you meant: mapKeys, mapValues, Resolution: Please check expression syntax and data types.
- j_angelevski4 years agoContributor III
It didn’t because the first and second data source that you posted are completely different.
I updated my expression ( the only issue is that with the previous source, the data was on the root level, but on the new source, the data is within the “data” object ), please refer to the expression below:{}.extend(...$data.entries().map(val => {[val[0]]: val[1].map(v => {}.extend(...v.entries().map(date => date[0].contains("_DATE") && date[1] == null ? {[date[0]]: "0000-00-00"} : {[date[0]]: date[1]} )))}))
Here is the result:
[ { "data":{ "TIMEDEPENDENTDATA":[ { "ASSET":"000050", "SUBNUMBER":"0000", "FROM_DATE":"1900-01-01", "TO_DATE":"9999-12-31", "W_DATE":"0000-00-00", "X_DATE":"0000-00-00" } ], "SELECTIONCRITERIA":[ { "PARAMETER":"GENERALDATA", "FIELD":"ASSET", "SIGN":"I", "OPTION":"E", "LOW":"00005000", "HIGH":"" } ], "REALESTATE":[ ], "POSTINGINFORMATION":[ { "ASSET":"0000502", "SUBNUMBER":"0000", "C_DATE":"2006-08-31", "DEACT_DATE":"0000-00-00", "PLRET_DATE":"0000-00-00", "PO_DATE":"0000-00-00", "CAP_KEY":"" } ], "NETWORTHVAL":[ ], "INVENTORY":[ { "ASSET":"000050", "SUBNUMBER":"0000", "V_DATE":"0000-00-00", "W_DATE":"0000-00-00" } ], "INSURANCE":[ ] } } ]
- aditya_gupta414 years agoContributor
Hi,
This still shows error:
Also, the $data is an object and inside that there are multiple arrays.