我正试图从JSON对象obj获取关键的“天气”,并且我试图获得关键“主要”的价值,即云。这是我的代码:
$(document).ready(function() {
$("#getMessage").on("click", function() {
$.getJSON("http://api.openweathermap.org/data/2.5/weather?lat=coord.lat&lon=coord.lon&APPID=b10811ac33cbff62d9facbabc293bbbf", function(json) {
var data = JSON.stringify(json);
var yo = "";
var obj = $.parseJSON(data);
$.each(obj, function() {
yo += this['weather'][0]['main']; // Please correct here,I think here is some problem
});
$(".message").html(yo);
});
});
});
JSON对象obj包含我试图获取天气状况的数据云:
{
"coord": {
"lon": 0.78, "lat": 0.25
}
,
"weather":[ {
"id": 803, "main": "Clouds", "description": "broken clouds", "icon": "04d"
}
],
"base":"cmc stations",
"main": {
"temp": 296.934, "pressure": 1030.02, "humidity": 100, "temp_min": 296.934, "temp_max": 296.934, "sea_level": 1030.01, "grnd_level": 1030.02
}
,
"wind": {
"speed": 5.22, "deg": 191.003
}
,
"clouds": {
"all": 76
}
,
"dt":1468231605,
"sys": {
"message": 0.0047, "country": "YE", "sunrise": 1468216709, "sunset": 1468260392
}
,
"id":8282146,
"name":"Font Al-Da'da",
"cod":200
}
以下是我的Codepen http://codepen.io/meow414/pen/rLGkWv的链接 API调用的响应每次都不同,但所有键和格式保持不变。此外,如果您想查看可以使用的JSON对象:
$(".message").html(data);// it will show the JSON objecct from which I am trying to get data.
我真的没有得到如何做到这一点,请不要标记它重复,阅读那些类似的问题并没有帮助我。请告诉我如何更正我的代码以获得所需的输出。
答案 0 :(得分:0)
通过调用$.parseJSON(data);
获得的对象似乎是object
类型。它不是一个数组。
var obj = $.parseJSON(data);
所以你的$.each
循环没有意义。您应该能够访问变量['weather']
上的obj
键,而无需循环遍历obj
。