2017-09-02 4 views
-1

Ma fonction lambda est appelée par une règle IoT (message MQTT dans JSON). J'essaie simplement d'enregistrer les valeurs, et les champs de points de niveau supérieur fonctionnent correctement, mais les objets imbriqués dans le JSON sont considérés comme non définis. J'ai essayé de JSON.stringify ces sans succès. Des idées?AWS Lambda Javascript Objet JSON non défini

'use strict'; 
console.log('Loading function'); 
exports.handler = (event, context, callback) => { 
    console.log('Received event:', JSON.stringify(event, null, 2)); // Complete message 
    console.log('Received event.ApiVersion:',event.ApiVersion); 
    console.log('Received event.CollectionID:',event.CollectionId); 
    console.log('Received event.TagData.Time:',event.TagData.Time); //undefined 

    var TimeObj = {}; 
    TimeObj = event.TagData.Time; 
    console.log('Received event TimeObj:',TimeObj); //undefined 
}; 

Voici les journaux de surveillance des nuages ​​/ résultats:

Loading function 
Received event: 
{ 
"FormatId": "TagValues", 
"ApiVersion": 1, 
"CollectionId": 2, 
"TagData": [ 
    { 
     "Time": "2017-09-02T11:06:35.917000+02:00", 
     "Values": { 
      "var1": 16777216, 
      "var2": 7534 
     } 
    } 
] 
} 
Received event.ApiVersion: 1 
Received event.CollectionID: 2 
Received event.TagData.Time: undefined 
Received event TimeObj: undefined 

Répondre

1

TagData est un tableau et non un objet, donc TagData.Time retours undefined.

changement

event.TagData.Time; 

Pour

event.TagData[0].Time; 
+0

Merci! Ça marche. – user2883655