Преобразуйте JSON в Node-RED - PullRequest
2 голосов
/ 26 июня 2019

У меня есть 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?

1 Ответ

2 голосов
/ 26 июня 2019

Если у вас есть этот JSON-объект в msg.payload, то вы можете добавить узел Change, настроить его для установки msg.payload и выбрать expression из списка типов в поле «to».Затем установите значение to:

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

Это выражение JSONata.Функция $ each будет вызывать предоставленную функцию для каждой пары ключ / значение в объекте ($.payload).Предоставленная функция отображает ключ ($k) и значение ($v) в требуемый формат.

Примечание. Если объект, который вы хотите отобразить, не содержится в msg.payload, тогда вынеобходимо изменить бит $.payload, чтобы указать на требуемое свойство.

...