在 Node-RED 中转换 JSON

Transform a JSON in 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"}
]

如何在 Node-RED 中实现这一点?

假设您在 msg.payload 中有那个 JSON 对象,那么您可以添加一个 Change 节点,将其配置为设置 msg.payload 和 select expression 来自 'to' 字段中的类型列表。然后将 to 值设置为:

$each($.payload,function($v, $k) {{"key":$k,"value": $v}})

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

注意 - 如果您要映射的对象不在 msg.payload 下,则您需要更改 $.payload 位以指向所需的 属性。