将JSON转换为红色节点

将JSON转换为红色节点,json,node-red,Json,Node Red,我有一个类似的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"} ] 如何在节点RED中实现这一点?假设您在msg.payload中有JSON对象,那么您可以添加更改节点,将其配置为设置msg.payload并从“to”字段中的类型列表

我有一个类似的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"}
]

如何在节点RED中实现这一点?

假设您在
msg.payload
中有JSON对象,那么您可以添加
更改
节点,将其配置为设置
msg.payload
并从“to”字段中的类型列表中选择
表达式
。然后将
设置为
值设置为:

$each($.payload,function($v, $k) {{"key":$k,"value": $v}})
这是一个JSONata表达式。该函数将为对象中的每个键/值对调用提供的函数(
$.payload
)。提供的函数将键(
$k
)和值(
$v
)映射到所需的格式

注意-如果要映射的对象未保存在
msg.payload
下,则需要将
$.payload
位更改为指向所需属性