Récupérer info dans réponse JSON

Résolu/Fermé
Max - Modifié le 25 sept. 2019 à 23:03
 Max - 26 sept. 2019 à 04:46
Bonjour,

J'essais de récupérer une information dans une réponse JSON

Voici mon script :

  getData();

  async function getData() {   
    const api_url = 'http://IP/api/v2?cmd=get_activity&apikey=xxxxx'
    const response = await fetch(api_url);
    const data = await response.text();
    console.log(data);


    document.getElementById('views').textContent = data;
}


Voici ce qui s'affiche sur ma page web :

{"response": {"message": null, "data": {"sessions": [], "stream_count": "0", "total_bandwidth": 0, "stream_count_transcode": 0, "wan_bandwidth": 0, "stream_count_direct_play": 0, "lan_bandwidth": 0, "stream_count_direct_stream": 0}, "result": "success"}}


Alors ma question est la suivante :
Comment faire pour que seulement la ligne importante pour moi soit affichée sur mon site?
La seule information necessaire pour moi est : stream_count : 0

Merci beaucoup!
A voir également:

1 réponse

Bonjour,
un fichier JSON c'est du texte. Donc il faut que vous le transformiez en objet avec
 JSON.parse(myJSON);

comme indiqué ici: https://www.w3schools.com/js/js_json_intro.asp

Ensuite pour accéder à l'objet utiliser la notation pointée (avec ".").
Comme ceci:
console.log(data.response.data.stream_count);//--- affiche dans la console la valeur associée 
// "0" ici
//-- pour afficher plusieurs valeurs de l'objet il faut les concaténer
console.log('streamcount: '+data.response.data.stream_count+'total bandwidth : '+data.response.data.total_bandwidth": 0);
1
Bonjour,

Merci pour votre réponse!

Le nouveau code :

 
getData();

async function getData() {
const api_url = 'http://IP/api/v2?cmd=get_activity&apikey=xxxxx'
const response = await fetch(api_url);
const data = await response.text();
console.log(data.response.data.stream_count);


document.getElementById('views').textContent = data;
}


Voici l'erreur que la console me donne :

TypeError: data.response is undefined
0
Je viens de voir mon erreur, j'ai changé le response.text par response.json, merci beaucoup!!
0