在json数组中苦苦挣扎

时间:2012-05-08 11:01:32

标签: javascript jquery arrays json

我已经更改了一个从api收到的json对象,并使用$ .makeArray将其更改为数组,现在我很难从这个数组中获取值。我想在天气预报中使用temp_c和value。下面打印出阵列。

[
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 个答案:

答案 0 :(得分:0)

你可以尝试:

alert(yourObject.temp_C);

alert(yourObject.weatherDesc.value);

您无需将其转换为数组:)

答案 1 :(得分:0)

您无需将对象转换为数组,只需访问所需的属性:

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;

答案 2 :(得分: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);
  });

});