2017-06-27 88 views
0

我想制作一个应用程序,该应用程序使用darksky.com API在用户位置显示当前天气。但现在我甚至无法将温度打印在控制台上。这里是我的代码:无法在javascript中显示JSON对象字段

var link = "https://api.darksky.net/forecast/037352c0951701a563b624359ea6111f"; //link with key 
getLocation(); 
function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } 
} 

function showPosition(position) { 
    link += "/" + position.coords.latitude + "," + position.coords.longitude; //getting the coordinates 
$.getJSON("https://crossorigin.me/https://api.darksky.net/forecast/037352c0951701a563b624359ea6111f/42.3601,-71.0589" , function(json.current.weather) { console.log("JSON Data: " + json); }) 
}); 
} 
+0

检查的关键。它似乎是错误的 –

+0

在这种情况下,你不能访问这样的密钥,它可以像响应数据的别名一样工作 – dotKn0ck

回答

1

你有几个语法错误正在进行。你有太多括号,你正试图在getJSON响应中使用点对象符号。用function(json) {,你的函数参数就像一个别名。 json.property不会做任何事情,并会导致错误。

如果你的响应对象有current.weather,那么这个语法是正确的,但它需要嵌套在回调函数中。对于恩..

$.getJSON(url, function(json) { 

    var data = json.current.weather; 
    console.log("JSON Data:", json, data); 

});  

见出:https://jsfiddle.net/vz8obeqj/2/