โ02-16-2023 06:29 AM
Hi Team,
I have my source data coming in JSON format. I want to sort the fields inside the JSON format alphabetically. One way is to use a mapper and arrange them one-one alphabetically but it is a tedious task if the fields are more. Can we use an expression in mapper or any other snap that does this for us?
Thank you.
Best Regards,
Darsh
Solved! Go to Solution.
โ02-16-2023 07:03 AM
Hi @darshthakkar,
One approach will be to Map the input document with the following expression:
$.entries().sort((a,b) => a[0].localeCompare(b[0])).reduce((acc,curr) => acc.extend({[curr[0]]:curr[1]}),{})
Note: This will only sort properties on first level.
Let me know if this helps.
BR,
Aleksandar.
โ02-16-2023 07:03 AM
Hi @darshthakkar,
One approach will be to Map the input document with the following expression:
$.entries().sort((a,b) => a[0].localeCompare(b[0])).reduce((acc,curr) => acc.extend({[curr[0]]:curr[1]}),{})
Note: This will only sort properties on first level.
Let me know if this helps.
BR,
Aleksandar.
โ02-16-2023 08:05 AM
Thank you @AleksandarAngelevski for your suggestion.
I will try it out and keep you posted with my findingsโฆ
โ02-16-2023 08:11 AM
@AleksandarAngelevski - Youโre right, Alphabetical sorting doesnโt work on the first level so youโll have to break that hierarchy and once youโre at the final stage, your expression will definitely work, Iโve tested it and can confirm that it works.
How I broke the hierarchy: Using JSON Splitter to reorganise JSON - #3 by Supratim (thank you @Supratim for your comments on a different thread)
โ02-16-2023 08:32 AM
@AleksandarAngelevski - Is it a safe assumption that we can use the same expression with a minor tweak to organize data alphabetically even if itโs not the JSON format?