我有一个类似JSON的
{"ab":12,"cd":23,"ef":34,"gh":"xyz"}
我想将其转换为:
[
{"key":"ab","value":12},
{"key":"cd","value":23},
{"key":"ef","value":34},
{"key":"gh","value":"xyz"}
]
如何在Node-RED中实现这一目标?
答案 0 :(得分:2)
假设您在execute()
中具有该JSON对象,则可以添加一个executionId
节点,对其进行配置以设置msg.payload
并从中的类型列表中选择Change
“收件人”字段。然后将msg.payload
的值设置为:
expression
这是JSONata表达式。 $each函数将对对象(to
)中的每个键/值对调用提供的函数。提供的函数将键($each($.payload,function($v, $k) {{"key":$k,"value": $v}})
)和值($.payload
)映射为所需格式。
注意-如果您要映射的对象不在$k
下,则需要更改$v
位以指向所需的属性。