【发布时间】:2017-05-06 01:05:12
【问题描述】:
JSON.Parse之后得到如下对象
undefined
{
"request": {
"command": "series",
"series_id": "PET.RWTC.D"
},
"series": [
{
"series_id": "PET.RWTC.D",
"name": "Cushing, OK WTI Spot Price FOB, Daily",
"units": "Dollars per Barrel",
"f": "D",
"unitsshort": "$/bbl",
"description": "Cushing, OK WTI Spot Price FOB",
"copyright": "Thomson-Reuters",
"source": "Thomson-Reuters",
"iso3166": "USA-OK",
"geography": "USA-OK",
"start": "19860102",
"end": "20161212",
"updated": "2016-12-14T13:31:06-0500",
"data": [
[
"20161212",
52.74
]
]
}
]
}
我正在尝试使用data.series[0].data[0][1] 访问“52.74”部分,但出现以下错误
TypeError: 无法读取未定义的属性“0”
我错过了什么吗?
更新 - 我正在使用的代码 (NodeJS 4.3)
var endpoint = buildEIAURL(event.request.intent.slots.OnDate.value, event.request.intent.slots.OnDate.value)
https.get(endpoint, (response) => {
response.on('data', (chunk) => { body += chunk })
response.on('end', () => {
var stringify = JSON.stringify(body)
var data = JSON.parse(stringify)
console.log(data.series[0])
var reqDate = String(new Date(event.request.intent.slots.OnDate.value))
context.succeed(
generateResponse(
buildSpeechletResponse(`The price of oil on ${reqDate} is $${data.series[0].data[0][1]}`, true),
{}
)
)
})
})
【问题讨论】:
-
您能告诉我们您用来执行此操作的代码吗?访问它对我来说很好:jsfiddle.net/qdcpcd17
-
console.log(body)? -
我刚刚注意到的一件事。所以我在做 JSON.Parse 之后立即做了一个 console.log 并且对象开始未定义{然后我粘贴的任何内容} ...这是问题吗?
-
是的,这就是
JSON.Parse返回undefined的原因。 -
有什么原因吗? json 似乎是有效的
标签: javascript json node.js