【发布时间】:2014-12-11 19:07:21
【问题描述】:
我正在尝试从 JSON API 响应中获取一个值,以便稍后将其映射到我的 HTML。
我的 JSON 的一部分是:
{
"data": {
"nearest_area": [
{
"distance_miles": "13.5",
"latitude": "34.500",
"longitude": "33.000"
}
],
"request": [
{
"query": "Lat 34.68 and Lon 33.11",
"type": "LatLon"
}
],
"weather": [
{
"date": "2014-12-11",
"hourly": [
{
"cloudcover": "0",
"humidity": "73",
"precipMM": "0.0",
"pressure": "1022",
"sigHeight_m": "1.5",
"swellDir": "257",
"swellHeight_m": "1.5",
"swellPeriod_secs": "8.4",
"tempC": "19",
"tempF": "67",
"time": "0",
"visibility": "10",
"waterTemp_C": "21",
"waterTemp_F": "70",
"weatherCode": "113",
"weatherIconUrl": [
{
我的获取代码:
$.getJSON(url, function(data) {
$('#id').html(data.weather[0].hourly[0].waterTemp_C);
});
我得到:
未捕获的类型错误:无法读取未定义的属性“0”
如果我去$('#id').html(data.weather.hourly[0].waterTemp_C); 我得到:
未捕获的类型错误:无法读取未定义的属性“每小时”
我是 JSON 和其他东西的新手,请帮助我正确选择它。我正在使用http://www.worldweatheronline.com API 来处理海洋天气。
【问题讨论】:
-
您确定这是您返回的 json 还是您期望返回的 json?
-
data.weather未定义或data.weather[0].hourly未定义... -
您似乎希望您的
data变量是您的顶级对象中data属性的内容,但事实并非如此。您的data变量包含您的顶级对象的内容,该对象具有data属性。