Récupérer info dans réponse JSON

Résolu
Max -  
 Max -
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!

1 réponse

  1. nightwatch
     
    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
    1. Max
       
      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
    2. Max
       
      Je viens de voir mon erreur, j'ai changé le response.text par response.json, merci beaucoup!!
      0