我正在尝试从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);
});
我得到了:
未捕获的TypeError:无法读取未定义的属性“0”
如果我去$('#id').html(data.weather.hourly[0].waterTemp_C);
我得到:
未捕获的TypeError:无法读取未定义的属性“每小时”
我是JSON的新手,请帮我正确选择它。我正在使用http://www.worldweatheronline.com API来应对海洋天气。
答案 0 :(得分:3)
您的JSON中有一个父"data"
属性,因此您的回调代码应该如下所示:
data.data.weather[0].hourly[0].waterTemp_C
│ │
│ └─ "data" property name
│
└─ callback variable name