2016-07-01 6 views
0
var weather; 
$(document).ready(function(){ 
alert("wellco"); 
var canvas = document.createElement('canvas'); 
canvas.id  = "CursorLayer"; 
canvas.width = 1224; 
canvas.height = 768; 
canvas.style.zIndex = 8; 
canvas.style.position = "absolute"; 
canvas.style.border = "1px solid"; 
document.body.appendChild(canvas); 

//the part where things go wrong begins 
data = $.getJSON('http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=c5959a33372923c74fccc1d07ab4b37b&units=metric'); 
weather=JSON.parse(data.responseText); 
console.log(weather.main.temp); 
if(data!="undefined"){ 
$('#temp').textContent = weather.main.temp; 
} 
}); 

Also arbeite ich an einer ChromeExtension und benutze Open-Wetter, um das Wetter der Stadt zu bekommen. Das Problem beginnt, wenn ich den Wert der Daten zuweisen, die ich mit getJSON vermute. Ich bekomme diesen Fehler. : Uncaught SyntaxError: Unerwartetes Token u in JSON an Position 0Open Weather API JSON-Daten verwenden

Ich habe irgendwo gelesen, dass dies bedeutet, dass meine Datenvariable hier nicht definiert ist. Was mache ich hier falsch?

Antwort

0

$.getJSON() ist asynchron; Es gibt keinen Wert als Ergebnis des Funktionsaufrufs zurück, wie Sie es versucht haben. Stellen Sie stattdessen eine Rückruffunktion bereit, um die zurückgegebenen Daten zu verarbeiten. Zuletzt wird der JSON bereits in ein Objekt für Sie geparst.

Versuchen Sie folgendes:

$.getJSON('http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=c5959a33372923c74fccc1d07ab4b37b&units=metric', function (weather) { 
    console.log(weather.main.temp); 
}); 
Verwandte Themen