2017-04-18 1 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 노드를 통해 출력.

은 또한 객체가 내가 JSON 추가 msg.payload.values하지 msg.values

+0

로 설정됩니다하지만 난 같은 오류를 'code' 점점 계속 "형식 오류를 : 정의되지 않은 재산 '온도'읽을 수 없습니다" 을 잘 모르겠어요 함수의 코드에서 ... –

+1

당신은 그 문법을 따르지 않을 것이고'msg.payload.values' 배열을 반복하고 각각의'key'를 검사하여'temperature'와 일치하는지 확인해야합니다 – hardillb