0
votes

SyntaxError: Jeton inattendu E à Json en position 1 avec json.parse ()

J'essaie d'utiliser OpenWeatherMap.org Météo API, je reçois les données mais que vous avez du mal à l'analyser.

Voici mon code: P>

request("https://api.openweathermap.org/data/2.5/weather?lat=30.4831&lon=76.595&appid=7beb6de85d3f3a28dabda1015684562f&units=metric&callback=test", function(error, response, body) {
    if (!error && response.statusCode == 200) {
        var parsedData = JSON.parse(body);
        console.log(typeof body);
    }
});


1 commentaires

Cette API est une API JSON, et elle ne répond pas avec un JSON analysable. Au lieu de cela, la réponse prend la forme d'un appel de fonction JavaScript. C'est ce que le paramètre "rappel" est pour.


4 Réponses :



0
votes

Puisque vous utilisez une API qui a une fonction de rappel renvoyée comme réponse. Ce n'est pas JSON mais JSON (JSON avec rembourrage). Votre code fonctionnera simplement bien si vous supprimez le paramètre de rappel de l'URL.

request("https://api.openweathermap.org/data/2.5/weather?lat=30.4831&lon=76.595&appid=7beb6de85d3f3a28dabda1015684562f&units=metric", function(error, response, body) {
       if (!error && response.statusCode == 200) {
          console.log(response);
       }
   });


0 commentaires

1
votes

Cela a fonctionné pour moi. Il suffit de définir un objet pour le premier argument avec la propriété URL et JSON. Ensemble JSON: true code>. Le réglage sur True traitera de l'analyse pour vous :)

const request = require('request');
const url = "https://api.openweathermap.org/data/2.5/weather?lat=30.4831&lon=76.595&appid=7beb6de85d3f3a28dabda1015684562f&units=metric";

request({ url: url, json: true }, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body);
  }
});


1 commentaires

Ah, je ne savais pas comment faire cela en utilisant demande



1
votes

Suppression & rappel = test à la fin de votre URL, vous n'avez pas à gérer JSONP et que vous pouvez travailler avec elle comme la normale.


0 commentaires