在 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
位以指向所需的 属性。
我有一个 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
位以指向所需的 属性。