希望能为我的编码提供一些帮助。
我正在尝试一些jquery编码从我在线天气api获得的JSON响应中提取特定对象。
以下是我从代码中获得的JSON响应:
{
"coord":
{
"lon": -4.53,
"lat": 55.64
},
"sys":
{
"message": 0.0069,
"country": "GB",
"sunrise": 1388306829,
"sunset": 1388332429
},
"weather": [
{
"id": 501,
"main": "Rain",
"description": "moderate rain",
"icon": "10n"
}],
"base": "cmc stations",
"main":
{
"temp": 281.63,
"pressure": 997,
"humidity": 87,
"temp_min": 281.15,
"temp_max": 282.15
},
"wind":
{
"speed": 8.7,
"deg": 170
},
"rain":
{
"3h": 11
},
"clouds":
{
"all": 40
},
"dt": 1388357400,
"id": 2645605,
"name": "Kilmarnock",
"cod": 200
}
通过上面的JSON响应,我试图捕获sys / country中的GB和weather / main中的Rain。
这里是我一直在使用的代码:
<script> jQuery(document).ready(function($) {
$.ajax({
url : "http://api.openweathermap.org/data/2.5/weather?lat=55.6409921&lon=-4.5282146",
dataType : "jsonp",
success : function(parsed_json) {
var locations = parsed_json['name'],
country = parsed_json['sys.country']
main = parsed_json['weather.main'];
var min = parsed_json['sys.country'];
alert("Current locaiton is " + locations );
alert("Current country is " + country);
alert("Current weather is " + main );
console.log('<p>'+country+'</p>');
console.log('<p>'+main+'</p>');
} }); });
虽然我一直在搞乱代码的位置,但对于国家和主要我要么[对象对象]和未定义,所以在这一点上我没有线索。
任何帮助都非常感激。
答案 0 :(得分:2)
sys.country
不是关键,您需要访问country = parsed_json.sys.country
parsed_json['sys.country']
在sys.country
对象中查找键parsed_json
,您希望在对象country
另请注意,weather是一个数组,因此您需要使用main
等索引访问main = parsed_json.weather[0].main
属性
演示:Fiddle
答案 1 :(得分:1)
尝试使用country = parsed_json['sys']['country']
或parsed_json.sys.country
。
答案 2 :(得分:1)
尝试country = parsed_json.sys.country