2017-09-13 3 views
0

J'utilise la console de Postman pour afficher la réponse de l'appel API avec console.log, j'utilise le runner car j'ai beaucoup d'itérations. Cependant, beaucoup d'informations provenant de la réponse de l'API me causent des problèmes, donc je voudrais faire est d'imprimer avec console.log des informations spécifiques du responseBody.Postman Impression d'informations spécifiques à partir de la réponse

Comme test avec Postman, j'utilise les éléments suivants:

var body = JSON.parse(responseBody); 
console.log(JSON.stringify(body.data)); 

La réponse est:

[{ "device": "1BED7", "temps": 1505320342, » data ":" 05b006bcac00000000000000 "," snr ":" 21.00 "," linkQuality ":" MOYENNE "," seqNumber ": 555," rinfos ": [{" tap ":" A2A "," delay ": 1.4," lat ":" 53.0 "," lng ":" 2.0 "}, {" tap ":" A2B "," retard ": 0.5," lat ":" 53.0 "," lng ":" 2.0 "}]}, {"device": "1CED7", "time": 1505277142, "données": "05b006bcac00000000000000", "snr": "20.68", "linkQuality": "MOYENNE", "seqNumber": 554, "rinfos": [ {"tap": "A2C", "delay": 1.3, "lat": "53.0", "lng": " 2.0 "}, {" tap ":" 232 "," delay ": 1.9," lat ":" 53.0 "," lng ":" 2.0 "}]}, {" périphérique ":" 152C3 "," heure " : 1505233937, "données": "05b006bcac00000000000000", "snr": "19.14", "linkQuality": "MOYENNE", "seqNumber": 553, "rinfos": [{"tap": "215", "delay" : 2.4, "lat": "53.0", "lng": "2.0"}]}, {"périphérique": "1BF81", "heure": 1505190735, "données": "05b006bcac00000000000000", "snr": " 21.67 "," linkQuality ":" MOYENNE "," seqNumber ": 552," rinfos ": [{" tap ":" 1CC "," delay ": 2.0," lat ":" 53.0 "," lng ":" 2.0 "}, {" tap ":" 25A », "retard": 1.6, "lat": "53,0", "lng": "2.0"}]},

Ce que je veux imprimer avec console.log serait que les valeurs de l'appareil, le temps et les données:

{ "1BED7", 1505320342, "05b006bcac00000000000000"}, { "1CED7", 15 05277142, "05b006bcac00000000000000"}, { "152C3", 1505233937, "05b006bcac00000000000000"}, et ainsi de suite ...

Mes compétences en programmation sont très limitées désolé si la réponse est si évidente, je l'ai testé beaucoup de choses mais je suis toujours coincé.

Merci beaucoup si vous pouvez aider

+0

'console.log (body.data.device),' et ainsi de suite pour d'autres valeurs – Debabrata

+0

Merci pour votre réponse. Cependant, cela ne fonctionne pas, quand j'utilise \t 'console.log (body.data.device)', j'ai "null" comme une réponse dans la console – Geljef

+0

Ouais.Je vois maintenant.à ce moment-là Vous étiez montrant l'image de votre console donc je ne pouvais pas appréhender – Debabrata

Répondre

0

Je pense que votre réponse est votre tableau de objects.It est déjà un JSON object.So tout d'abord ce que vous faites mal est que vous ne avez pas besoin d'analyser it.You pouvez l'utiliser directement.Vérifiez cet extrait de code ci-dessous à la fin de la réponse.Je pense que cela satisfait votre besoin.J'ai utilisé la fonction forEach pour itérer dans le tableau de réponse et pousser la valeur dont vous avez besoin dans le tableau vide.Ce tableau de résultats contient l'objet dans le format suivant. vous pouvez accéder à chaque propriété de chaque objet de ce tableau par l'opérateur de javascript .. Je pense que c'est assez évident à vous.
[ { "device": "1BED7", "time": 1505320342, "data": "05b006bcac00000000000000" }, { "device": "1CED7", "time": 1505277142, "data": "05b006bcac00000000000000" }, { "device": "152C3", "time": 1505233937, "data": "05b006bcac00000000000000" }, { "device": "1BF81", "time": 1505190735, "data": "05b006bcac00000000000000" } ]

var responseBody=[{"device":"1BED7","time":1505320342,"data":"05b006bcac00000000000000","snr":"21.00","linkQuality":"AVERAGE","seqNumber":555,"rinfos":[{"tap":"A2A","delay":1.4,"lat":"53.0","lng":"2.0"},{"tap":"A2B","delay":0.5,"lat":"53.0","lng":"2.0"}]}, 
 
    {"device":"1CED7","time":1505277142,"data":"05b006bcac00000000000000","snr":"20.68","linkQuality":"AVERAGE","seqNumber":554,"rinfos":[{"tap":"A2C","delay":1.3,"lat":"53.0","lng":"2.0"},{"tap":"232","delay":1.9,"lat":"53.0","lng":"2.0"}]},{"device":"152C3","time":1505233937,"data":"05b006bcac00000000000000","snr":"19.14","linkQuality":"AVERAGE","seqNumber":553,"rinfos":[{"tap":"215","delay":2.4,"lat":"53.0","lng":"2.0"}]},{"device":"1BF81","time":1505190735,"data":"05b006bcac00000000000000","snr":"21.67","linkQuality":"AVERAGE","seqNumber":552,"rinfos":[{"tap":"1CC","delay":2.0,"lat":"53.0","lng":"2.0"},{"tap":"25A","delay":1.6,"lat":"53.0","lng":"2.0"}]}]; 
 
var array=[]; 
 
responseBody.forEach(function (obj) { 
 
    array.push({device:obj.device,time:obj.time,data:obj.data}) 
 
}) 
 
console.log(array);

+0

Merci beaucoup, ça a marché !!! Je vois maintenant exactement ce que je faisais de mal. Merci pour votre explication! – Geljef

0
let results = _.map(JSON.parse(responseBody), 
    (sensor) => { return [sensor.device, sensor.time, sensor.data]}); 

// results contains an array like 
// [[deviceId1, time1, data1], [deviceId1, time1, data1], ...] 

console.log(results); 
+0

Cela a fonctionné aussi !! Merci beaucoup pour votre réponse!! – Geljef