IBM Cloud Functions 在 Watson Assistant/node.js/json 中打印 API 响应

问题描述

使用 IBM 云功能,我调用了两个 Joke API。第一个给了我这些结果:

Results:
{
  "response": {
    "body": {
      "body": [
        {
          "_id": "5f80ccd641785ba7c7d27bc0","punchline": "They always egg-cercise!","setup": "How do hens stay fit?","type": "general"
        }
      ],"success": true
    },

我想在 Watson 助手中打印妙语和设置,所以我尝试了以下代码$webhook_result_1.response.body.body.setup$webhook_result_1.response.body.body.punchline 但两者都给我一个错误。当我使用 $webhook_result_1.response.body.body 时,我得到了这个:

[{"_id":"5f80ccd641785ba7c7d27c07","punchline":"A JOKE MACHINE!?","setup":"What do I look like?","type":"general"}]

所以我想我走对了。我做错了什么?


——
这是第二个笑话 API 的响应:
Results:
{
  "response": [
    {
      "id": 299,"punchline": "The meat-ball.","setup": "Where do hamburgers go to dance?","type": "general"
    }
  ]
}

我试过这个:$webhook_result_2.response.punchline效果不佳。

如何打印每个 API 的妙语和设置?

解决方法

[] 表示一个数组,因此需要对其进行索引。理想情况下,您应该检查一个数组以查看它至少有一个元素,然后遍历它,但是您的第一个元素(如果存在)将是:

$webhook_result_1.response.body.body[0].setup

根据对您的问题的评论,您似乎将左括号放在了错误的位置。