使用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”也不起作用。我是否需要一个函数节点来查找嵌套元素中的元素?
答案 0 :(得分:1)
首先使用JSON.parse()
将json解析为对象。然后在对象中slots.light
是一个带有键name
和value
的对象。使用键访问键的值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