我试图访问一些数据,无论我尝试什么,都会不断出错。请帮忙。

"rain":{"3h":13.625}是我尝试访问的JSON文件的一部分。

这是我尝试过的:

var currentRain = data.rain.3h;这是以前工作时最合乎逻辑的方法,但数字是导致错误的原因。

var currentRain = data.rain["3h"];
 var currentRain = data.rain[0]["3h"];
 var currentRain = data.rain["3h"][0];

更新:

这是JSON有效负载:

{ "base" : "stations",
  "clouds" : { "all" : 92 },
  "cod" : 200,
  "coord" : { "lat" : -33.850000000000001,
      "lon" : 151.22
    },
  "dt" : 1429558616,
  "id" : 6619279,
  "main" : { "grnd_level" : 1024.97,
      "humidity" : 100,
      "pressure" : 1024.97,
      "sea_level" : 1031.0999999999999,
      "temp" : 288.77699999999999,
      "temp_max" : 288.77699999999999,
      "temp_min" : 288.77699999999999
    },
  "name" : "City of Sydney",
  "rain" : { "3h" : 13.625 },
  "sys" : { "country" : "AU",
      "message" : 0.0101,
      "sunrise" : 1429474880,
      "sunset" : 1429514809
    },
  "weather" : [ { "description" : "heavy intensity rain",
        "icon" : "10n",
        "id" : 502,
        "main" : "Rain"
      } ],
  "wind" : { "deg" : 157.5,
      "speed" : 8.3200000000000003
    }
}

最佳答案

您需要使用["bracket notation"]来访问它,因为"3h"以数字开头。正如MDN解释的那样:


  对象属性名称可以是任何有效的JavaScript字符串,也可以是任何可以转换为字符串的内容,包括空字符串。但是,任何不是有效JavaScript标识符的属性名称(例如,具有空格或连字符或以数字开头的属性名称)都只能使用方括号表示法进行访问。

10-08 16:54