【问题标题】:$.getJSON, Cannot read property '0' of undefined$.getJSON,无法读取未定义的属性“0”
【发布时间】: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 属性。

标签: jquery json api


【解决方案1】:

您的 JSON 中有一个父 "data" 属性,因此您的回调代码应该如下所示:

data.data.weather[0].hourly[0].waterTemp_C
│    │
│    └─ "data" property name
│
└─ callback variable name

【讨论】:

  • 哦,就是这么简单。非常感谢。
  • @user27738:没问题。有时只需要第二双眼睛。
猜你喜欢
  • 1970-01-01
  • 2019-11-20
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多