如何访问JSON文件的一部分

时间:2015-04-20 19:54:32

标签: javascript json

无论我尝试什么,我都试图访问一些数据并不断收到错误。请帮忙。

"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
    }
}

3 个答案:

答案 0 :(得分:4)

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

  

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

答案 1 :(得分:0)

这是正确的JSON:

{
   "rain": {
      "3h": 13.625
   }
}

首先,您需要解析它并转换为对象:

var jsonToObject = JSON.parse('{"rain":{"3h":13.625}}');

您现在可以像这样访问它:

jsonToObject.rain["3h"]

答案 2 :(得分:0)

只需使用data["rain"]即可。如果您需要解析它,请先JSON.parse(data)然后data["rain"]

<强>输出

console.log(data["rain"]);
> { '3h': 13.625 }

...请记住,它将返回一个Object。