Order sort

Dear All,

I am implementing a pipeline but I am taking more than enough snaps, my output is:

image

Desired output:

image

Is this possible using a single mapper snap?

Thanks in advance.

Hi @deepanshu.1,

I’ve managed to do this using only one Mapper snap, but in addition I used a Group By N Snap with the Group size set to 0 before the Mapper, and a JSON Splitter afterwards.
Here’s the expression:
image
And here’s the pipeline:
SampleWeatherAPIResponseMap_2022_02_28.slp (10.9 KB)

BR,
Aleksandar

6 Likes

Dear Aleksandar,

Thanks for the reply but I am facing issue below:
image

BR,
Deepanshu

Hi @deepanshu.1 ,

Can you please attach the output of the REST API (I suppose it is in JSON format) ?

Cheers,
Marjan

1 Like

Hi Marjan,

Below is the output:

[

{

“group”:[

{

“location”:

“Konstanz”

“temp”:

269.63

“pressure”:

1028

“humidity”:

82

}

{

“location”:

“India”

“temp”:

305.49

“pressure”:

1013

“humidity”:

15

}

{

“location”:

“Novinki”

“temp”:

265.38

“pressure”:

1035

“humidity”:

87

}

{

“location”:

“Ptitsefabrika”

“temp”:

283.25

“pressure”:

1018

“humidity”:

80

}

]

}

]

Regards,
Deepanshu

Hi @deepanshu.1 ,

Please try with the following in the mapper and let me know if it helps you:

$.group.map((x,index)=> {“Location”:x.location, “Temp”:x.temp -273.15, “Temp_Order”:jsonPath($, “group[].temp").sort((a,b)=>a-b).indexOf(x.temp)+1, “Press”:x.pressure, “Press_Order”:jsonPath($, "group[].pressure”).sort((a,b)=>a-b).indexOf(x.pressure)+1, “Humidity”:x.humidity, “Humidity_Order”:jsonPath($, “group[*].humidity”).sort((a,b)=>a-b).indexOf(x.humidity)+1})

BR,
Marjan

3 Likes

Dear Marjan,

I am getting the below error:

Could not compile expression: $.group.map((x,index)=> {“Loca … (Reason: Invalid token: ‘“’ for expression: $.group.map((x,index)=> {“Loca …; Resolution: Please check expression syntax)

Br,
Deepanshu

Hi @deepanshu.1 ,

Please replace quotation marks and with " in the expression in mapper.

BR,
Marjan

2 Likes

Hi @deepanshu.1,

Also you can try to insert the asterisk symbol ‘*’ in between the marked square bracket on the picture below:
community

BR,
Aleksandar

2 Likes

It should look like this:

I don’t know why the editor is replacing the symbol * and the quotation marks.

BR,
Marjan

4 Likes

@AleksandarAngelevski and @marjan.karafiloski

It worked Thanks a lot.

BR,
Deepanshu

1 Like