2017-01-28 11 views
0

スイッチ・ノードを使用して、ネストされたJSON文字列にマッチする方法JSONified:私は成功しmsg.payload.nameに対する私の流れの第一のスイッチノードでは、私は(すでに)このmsg.payloadを受けるノード-REDを使用して

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

に一致します。第2のスイッチはスロットの内容、例えばmsg.payload.slotsに "light"が含まれている場合は、1を介して続けます。

プレーンなスイッチノードでは動作しません。特定の配列アドレッシングでも、msg.payload.slots[0]の "light"を検索することはできません。ネストした要素内の要素を探すために関数ノードが必要ですか?

+0

関数ノードでは、 'if(" light "in msg.payload.slots){...}'でアプローチします。 – PiEnthusiast

答えて

1

まずslots.light

msg.payload.slots.light.name;//matches against light 
msg.payload.slots.light.value;//matches against kitchen 
相当 object['key']または object.key

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

を使用して、キーnamevalue .accessのキーの値を持つオブジェクトである、あなたのオブジェクトにJSON.parse() .Thenを使用してオブジェクトにあなたのJSONをパース

+0

ありがとうございます。私は関数内で要素とその内容を取得する方法を知っています。問題は、** Node-RED **のSwitchノードを使用して、ネストされたオブジェクトに値が含まれているかどうかを調べることができるかどうかです。 – PiEnthusiast

関連する問題