openweather API .getJSON请求返回undefined

时间:2016-12-07 01:53:00

标签: jquery json

我已经阅读了很多类似的主题,但他们没有帮助..

尝试访问此JSON对象..

{

    "coord": {
        "lon": -83.9,
        "lat": 33.99
    },
    "weather": [
        {
            "id": 701,
            "main": "Mist",
            "description": "mist",
            "icon": "50n"......

使用此脚本。我已经链接到jQuery CDN,确保我的api密钥是正确的,只是在这里不知所措。

<html>

 <script
              src="https://code.jquery.com/jquery-2.2.4.min.js"
              integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
              crossorigin="anonymous"></script>

<script>$(document).ready(function(){
  var api = "http://api.openweathermap.org/data/2.5/weather?lat=33.9654688&lon=-83.9138728&appid=(This is where the apikey goes)";

  $.getJSON(api, function(data){
    console.log(api.weather.main);
  });
});
</script>
</html>

非常感谢任何帮助,这是我第一次进行api通话,所以这对我来说是一个很大的障碍。

2 个答案:

答案 0 :(得分:1)

也许您应该阅读data,如console.log(data);

答案 1 :(得分:1)

您必须按照以下步骤从API中的JSON中检索值。

  1. data指定为Object
  2. weather data Array检索为nth
  3. Array中以Object的形式检索您需要的main项。
  4. nth对象String检索为var mainObj = { "coord": { "lon": -83.9, "lat": 33.99 }, "weather": [ { "id": 701, "main": "Mist", "description": "mist", "icon": "50n" } ] } console.log(mainObj); console.log(mainObj.weather); console.log(mainObj.weather[0]); console.log(mainObj.weather[0].main);
  5. 参见上述说明的例子。

    iex(15)> {:ok, f} = File.open "file"
    {:ok, #PID<0.334.0>}
    iex(16)> :crypto.hash(:md5, f)
    ** (ArgumentError) argument error
                 :erlang.iolist_to_binary(#PID<0.334.0>)
        (crypto) crypto.erl:225: :crypto.hash/2