如何使用 Switch 节点匹配嵌套 JSON 中的字符串
How to match string in nested JSON using Switch node
使用 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" 也不起作用。我是否需要一个函数节点来查找嵌套元素中的元素?
首先使用 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
使用 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" 也不起作用。我是否需要一个函数节点来查找嵌套元素中的元素?
首先使用 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