How to get all the paths of the input object and traverse it according to my wish.
One such use case is I want to convert the value of all except few fields/nested fields in a object to uppercase.
For example, assume below is the input,
{
"name": "John",
"age": 30,
"bio": "I am a software developer.",
"username": "john_doe",
"profiles": [
{
"network": "Twitter",
"username": "john_doe"
},
{
"network": "Facebook",
"username": "john_doe"
}
]
}
For the above payload, I want to convert all values to uppercase, except for $.username and $.profiles.username. In this case, I would know only which are those fields to except, not the paths to convert.
Output for above would be,
{
"name": "JOHN",
"age": 30,
"bio": "I AM A SOFTWARE DEVELOPER.",
"username": "john_doe",
"profiles": [
{
"network": "TWITTER",
"username": "john_doe"
},
{
"network": "FACEBOOK",
"username": "john_doe"
}
]
}
How to achieve this using JSONata ?
You can write a recursive function to dig deep into your object and then replace values that match your criteria:
Check it out on the Stedi playground: https://stedi.link/HYL5ebO