hi,
I wanted to convert my payload.object in form of array. Please help
New to this Node red family.
hi,
I wanted to convert my payload.object in form of array. Please help
New to this Node red family.
You will need to specify what format you want, if you do a direct conversion, you will loose the property names of course.
In code, the simple way to do a direct conversion is:
const myarray = Object.values(msg.payload)
There are many ways to restructure your JS object into an array of values. My personal favorite is to use a JSONata expression inside of a change
node -- something like this:
Note: the JSONata expression is not Javascript... it's a lambda function that "spreads" each field of the object into an array of key:val pairs, then builds those into an array of objects with "id" and '"v" fields to hold the topic+key and the value, respectively:
payload.$spread().{
'id': $$.topic & '.' & $keys()[0],
'v': *
}
It's a lot to take in, I know, but a very powerful language to understand. If you are interested, check out docs.jsonata.org for more info.
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.