JSON 来自 API 的回复

JSON response from API

我正在尝试使用 API 以 JSON 形式提取天气数据。它成功地从 API 返回数据,但是在尝试访问对象的属性时,我得到以下信息:

Uncaught SyntaxError: Unexpected token :

我知道回复回来了,因为我可以看到它returns这个

{"coord":{"lon":122,"lat":45},"sys":{"message":0.0024,"country":"CN","sunrise":1460581662,"sunset":1460630193},"weather":[{"id":500,"main":"Rain","description":"light rain","icon":"10n"}],"base":"cmc stations","main":{"temp":280.37,"temp_min":280.37,"temp_max":280.37,"pressure":1004.49,"sea_level":1024.21,"grnd_level":1004.49,"humidity":77},"wind":{"speed":6.9,"deg":182.004},"clouds":{"all":92},"rain":{"3h":1.92},"dt":1460668593,"id":2034323,"name":"Tuquan","cod":200}

这是我使用的代码:

function displayWeatherAndLocation() {
$.ajax({
    url: "http://api.openweathermap.org/data/2.5/weather/",
    jsonp: "jsonp",
    dataType: "jsonp",
    data: {
        lat: "45",
        lon: "122",
        APPID: "b8d8272fd3bdb1f099b1288ff750d5e2"
    }
})
.done(test)
.fail();
}

function test(response) {
   console.log(response.main.temp);
}

正常请求数据即可。不要使用 jsonp。 jQuery 将为您处理转换。

function displayWeatherAndLocation() {
  $.ajax({
    url: "http://api.openweathermap.org/data/2.5/weather/",
    data: {
        lat: "45",
        lon: "122",
        APPID: "b8d8272fd3bdb1f099b1288ff750d5e2"
    }
  })
  .done(test)
  .fail();
}

function test(weatherData) {
   document.querySelector('pre').innerText = weatherData.main.temp;
}

$('button').click(displayWeatherAndLocation);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Click Me</button><br />
<pre></pre>