2017-04-18 9 views
0
"{"values":[{"key": "id", "value": 171},{"key": "counter", "value": 0},{"key": "temperature", "value": 2561},{"key": "x_axis", "value": -223},{"key": "y_axis", "value": -256},{"key": "z_axis", "value": 246},{"key": "battery", "value": 2817}]}" 

は私がMQTTと私は値を抽出するノード-REDで関数を使用しています使用してJSONデータで送信する(zolertia Z1)デバイスを持っているが、私は私のコードのエラーを得続ける抽出値は

return {values: msg.values.temperature}; 

エラー:

function : (error) 
"TypeError: Cannot read property 'temperature' of undefined" 

答えて

0

MQTTノードからの出力は、文字列ではないJSONオブジェクトです。

enter image description here

実行して、関数ノードに渡す前にJSONオブジェクトに文字列を変換するためにJSONノードを介して出力します。

また、オブジェクトがmsg.payload.valuesないmsg.values

+0

として設定されます。私は、JSONを追加しましたが、私は同じエラーに 'code'得続ける:私はよく分からない 「TypeError例外を未定義のプロパティを読み取ることができません『温度』を」関数内のコードから... –

+1

この構文では、 'msg.payload.values'配列を繰り返し処理し、それぞれの' key'をチェックして 'temperature'にマッチするかどうか調べなければなりません – hardillb