2017-06-27 89 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/