无法在javascript中显示JSON对象字段

时间:2017-06-27 18:28:49

标签: javascript json api

我想创建一个应用程序,使用darksky.com API显示用户位置的当前天气。但是现在我甚至无法将温度打印到控制台上。这是我的代码:

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); })
});
}

1 个答案:

答案 0 :(得分: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/