Javascript 如何正确地反序列化响应格式

Javascript 如何正确地反序列化响应格式,javascript,node.js,amazon-web-services,aws-lambda,amazon-lex,Javascript,Node.js,Amazon Web Services,Aws Lambda,Amazon Lex,这是调用AWS Lambda函数后出现的错误: 出现错误:无效的Lambda响应:收到来自Lambda的无效响应:无法构造IntentResponse的实例:没有字符串参数构造函数/工厂方法从字符串值反序列化('Thank,您的比萨饼已订购。'),位于[Source:“Thank,您的比萨饼已订购。”。行:1,列:1] 看起来您从以下示例文档中获取了响应: "dialogAction": { "type": "Close", "fulfillmentState": "Fulfil

这是调用AWS Lambda函数后出现的错误:

出现错误:无效的Lambda响应:收到来自Lambda的无效响应:无法构造IntentResponse的实例:没有字符串参数构造函数/工厂方法从字符串值反序列化('Thank,您的比萨饼已订购。'),位于[Source:“Thank,您的比萨饼已订购。”。行:1,列:1]


看起来您从以下示例文档中获取了响应:

"dialogAction": {
    "type": "Close",
    "fulfillmentState": "Fulfilled or Failed",
    "message": {
      "contentType": "PlainText or SSML",
      "content": "This example won't work as is."
    } 
}
许多人犯了同样的错误,但对于
fulfillmentState
contentType
,您必须选择此处显示的一个或另一个示例值,并且与正确的大小写完全相同

因此,为了澄清:

fulfillmentState
设置为
completed
Failed

将消息的
contentType
设置为
PlainText
SSML

"dialogAction": {
    "type": "Close",
    "fulfillmentState": "Fulfilled",
    "message": {
      "contentType": "PlainText",
      "content": "This is a proper example response."
    } 
}

我认为这是在说它期望一个
IntentResponse
,但您提供的是一个
字符串。很难知道您在做什么,因为您没有显示任何代码,但我认为您正在使用。Try:
返回响应感谢您的回复,它只是将contentType设置为纯文本
"dialogAction": {
    "type": "Close",
    "fulfillmentState": "Fulfilled",
    "message": {
      "contentType": "PlainText",
      "content": "This is a proper example response."
    } 
}