将JSON转换为红色节点
我有一个类似的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”字段中的类型列表
{"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
位更改为指向所需属性