使用Jquery显示特定的JSON对象

时间:2013-12-30 02:10:26

标签: jquery json

希望能为我的编码提供一些帮助。

我正在尝试一些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>'); 
} }); });

虽然我一直在搞乱代码的位置,但对于国家和主要我要么[对象对象]和未定义,所以在这一点上我没有线索。

任何帮助都非常感激。

3 个答案:

答案 0 :(得分:2)

sys.country不是关键,您需要访问country = parsed_json.sys.country

parsed_json['sys.country']sys.country对象中查找键parsed_json,您希望在对象country sys的值>

另请注意,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