如何使用Switch节点匹配嵌套JSON中的字符串

时间:2017-01-28 15:29:09

标签: javascript node-red

使用Node-RED我收到这个msg.payload(已经)JSONified:

{ "name": "LightOnIntent", "slots": { "light": { "name": "light", "value": "kitchen" } } }

在我的第一个交换节点中,我成功地与msg.payload.name匹配。第二个开关应该与插槽的内容一起工作,例如,如果msg.payload.slots包含“light”,则继续通过1。

我无法使用普通的交换节点。即使使用特定的数组寻址,在msg.payload.slots[0]中查找“light”也不起作用。我是否需要一个函数节点来查找嵌套元素中的元素?

1 个答案:

答案 0 :(得分:1)

首先使用JSON.parse()将json解析为对象。然后在对象中slots.light是一个带有键namevalue的对象。使用键访问键的值object['key']object.key

msg.payload.slots['light'].name;//matches against light
msg.payload.slots['light'].value;//matches against kitchen

相当于

msg.payload.slots.light.name;//matches against light
msg.payload.slots.light.value;//matches against kitchen