无法从打字稿中的 json 对象获取数组响应

Posted

技术标签:

【中文标题】无法从打字稿中的 json 对象获取数组响应【英文标题】:Unable to fetch array response from json object in typescript 【发布时间】:2018-08-31 19:38:00 【问题描述】:

我目前正在使用 api-ai-javascript 处理 Google 的对话流程。我正在接收来自服务器的 json 格式的响应,并尝试访问其中的“res.result.fulfillment.messages[0]”字段。但每次我“ng serve”时,它都会显示以下错误:“错误 TS2339:类型'语音:字符串;'上不存在属性'消息'”。我试图在控制台中显示整个响应,它显示“消息”字段。有人可以帮忙here's screenshot of my console log

【问题讨论】:

res.result.fulfillment.messages[0].speech 使用上述语句访问单个元素。 没有用。再次显示相同的错误:( 在这里snippi.com发布您的响应json 抱歉延迟回复。在这里,这是回复:snippi.com/s/v83e1r7 【参考方案1】:

似乎对象只有属性语音。您应该尝试针对消息发表言论。

像这样:response.speech 或 console.log(response) 来查看所有对象。

【讨论】:

感谢 Jose,但我已经包含了 console.log(response) 的图片链接 好的,我在您的回复中只看到两个属性。类型和语音。看起来语音是你的字符串没有?【参考方案2】:

我找到了解决方案。就我而言,这与 api-ai-javascript 有关。在 'interfaces.ts' 中,IserverResponse 接口在 'fulfillment' 标签中只有 'speech'。添加“消息?:任何[];”到它,解决了问题。

【讨论】:

以上是关于无法从打字稿中的 json 对象获取数组响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应打字稿中从json文件中获取和显示数据

如何从打字稿中的数组中获取键[重复]

从打字稿中的 Set-Cookie 标头中获取 jwt 值

从打字稿中的对象获取特定类型的所有键[重复]

打字稿中无法识别json文件

从打字稿中的索引文件导出JSON文件