0

我已经更改了从 api 接收的 json 对象,并使用 $.makeArray 将其更改为数组,现在我正在努力从该数组中获取值。我想要天气描述中的 temp_c 和值。数组的打印结果如下。

[
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
4

3 回答 3

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);
  });

});
于 2012-05-08T11:39:43.687 回答
0

你可以试试:

alert(yourObject.temp_C);

alert(yourObject.weatherDesc.value);

您不需要将其转换为数组:)

于 2012-05-08T11:06:10.877 回答
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;
于 2012-05-08T11:07:34.230 回答