2012-05-08 69 views
0

我修改了一个从api接收到的json对象,并使用$ .makeArray将其更改为一个数组,现在我正努力从这个数组中获取值。我希望temp_c和价值天气desc。阵列的打印输出如下。用json数组挣扎

[ 
Object 
data: Object 
current_condition: Array[1] 
0: Object 
cloudcover: "50" 
humidity: "72" 
observation_time: "10:25 AM" 
precipMM: "0.1" 
pressure: "1005" 
temp_C: "13" 
temp_F: "55" 
visibility: "10" 
weatherCode: "122" 
weatherDesc: Array[1] 
0: Object 
    value: "Overcast" 
__proto__: Object 
length: 1 
__proto__: Array[0] 
weatherIconUrl: Array[1] 
winddir16Point: "SSW" 
winddirDegree: "210" 
windspeedKmph: "19" 
windspeedMiles: "12" 
__proto__: Object 
length: 1 
__proto__: Array[0] 
request: Array[1] 
__proto__: Object 
__proto__: Object 
+3

可以发布原始JSON吗? – Joseph

+0

你在这里需要什么? – Dhiraj

+0

你能发布JavaScript代码吗? –

回答

0

你可以尝试:

alert(yourObject.temp_C);

而且

alert(yourObject.weatherDesc.value);

你不会需要将其转换为一个数组:)

0

你不” t需要将对象转换为数组,jus牛逼访问你需要的属性:

var o = object_retrieved_from_api; 
o.temp_c; 
o.weatherDesc[0].value; 

如果你把它转换成一个数组,只需要指数第一对象数组:

var a = $.makeArray(object_retrieved_from_api); 
a[0].temp_c; 
a[0].weatherDesc[0].value; 
0

JSON的全部意义在于,它已经是一个Javascript对象,所以你不需要任何复杂的解析逻辑来获取数据。试试下面的代码,你会发现从JSON Web服务获取数据是多么容易。

$.getJSON('your JSON URL here', function(data) { 

    $.each(data.current_condition, function() { 
    alert(this.temp_C + "C " + this.weatherDesc[0].value); 
    }); 

});