嗨,我用JSON为自己做了一些练习,我正在尝试从URL中获取数据
http://api.openweathermap.org/data/2.5/weather?q=miami
查询没有问题,并且数据返回,我什至可以使用innerHTML将其写入html文件。但是,如果我想访问JSON数据的键,它表示未定义。但是,如果我给变量加上格式化的JSON代码,它就可以工作,我什至可以访问密钥,但我却不明白。
/* Here Goes Your Ajax Code */
var server;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
server = new XMLHttpRequest();
} else {// code for IE6, IE5
server = new ActiveXObject("Microsoft.XMLHTTP");
}
var city = "Düsseldorf"
var userInput = document.getElementById("userInput");
userInput.addEventListener("change", myFunction);
var weatherUrl = "http://api.openweathermap.org/data/2.5/weather?q="+city;
server.open("POST", weatherUrl , false);
server.send();
var weather= JSON.parse(server.responseText);
document.getElementById("errorMe").innerHTML = weather;
city = weather.name;
document.getElementById("city").innerHTML = city;
function myFunction() {
city = document.getElementById("userInput").value;
weatherUrl = "http://api.openweathermap.org/data/2.5/weather?q="+city;
server.open("POST", weatherUrl , false);
server.send();
document.getElementById("myDiv").innerHTML = weather= JSON.parse(server.responseText);
weather= JSON.parse(server.responseText);
if(weather.cod == 404){
document.getElementById("myDiv").innerHTML = "<p>You typet a city that does not Exist!</p>";
}else{
document.getElementById("myDiv").innerHTML = weather;
}
}
我猜想当您使用从服务器返回的版本时,它只是文本-您需要使用
weather = JSON.parse(theResponseData);
将其转换为可以随后访问其属性的对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句