【发布时间】:2016-04-11 13:43:45
【问题描述】:
我在一个学生项目中使用 NASA Near Earth Object 数组,但无法访问具有日期和连字符作为键的嵌套对象,例如
2016-09-08 : [...]
我返回的错误只是“未定义”。
我的 API 调用是:
$(document).ready(function NASAtest() {
$.ajax({
type: "GET",
url: "https://api.nasa.gov/neo/rest/v1/feed?start_date=2016-09-07&end_date=2016-09-08&api_key=DEMO_KEY",
asynch: false,
contentType: "application/javascript",
dataType: "json",
success: function(data) {
console.log(data)
var recordList = data.near_earth_objects;
console.log(recordList);
var recordList2 = data.near_earth_objects[2016-09-08];
console.log(recordList2);
}
});
});
示例 API 数据:
{
"near_earth_objects": {
"2016-09-08": [
{
"neo_reference_id": "3726710",
"name": "(2015 RC)",
"nasa_jpl_url": "http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=3726710",
"absolute_magnitude_h": 24.3,
"is_potentially_hazardous_asteroid": false,
} ] } }
见小提琴:https://jsfiddle.net/lollyborch/v640ocfr/
和 JSON 数据:https://api.nasa.gov/neo/rest/v1/feed?start_date=2016-09-07&end_date=2016-09-08&api_key=DEMO_KEY
我最终希望遍历所有日期信息,以获取日期范围内的“absolute_magnitude_h”和“is_potentially_hazardous_asteroid”等键,但在这个阶段我只是无法超过日期键。
我尝试过使用方括号而不是点符号,如 here 和 here 所述,但似乎看不出我做错了什么。
任何关于正确方向的想法将不胜感激。
【问题讨论】:
-
您是否尝试使用引号:
data.near_earth_objects["2015-09-08"]? -
另外,请注意您正在检索 2016 的数据,但您尝试获取 2015 日期的数据,所以我猜你想要
data.near_earth_objects["2016-09-08"]。以防万一你还在纠结“未定义”错误。见jsfiddle.net/v640ocfr/1 -
非常感谢@Paul。踢自己,这是一个拼写错误。今晚我尝试了很多变化,我不记得更新了。
标签: javascript json ajax api