在api.ai中,当'isList'参数被发送到webhook时,它的格式是什么?

时间:2017-08-29 09:30:02

标签: javascript dialogflow

我已经习惯了C#而不是JS,所以如果我无知,那我就会懈怠但是我想通过API.ai发送的列表进行foreach循环,我不知道它是否是一个固定长度数组或List,或者如果在Javascript中两者之间甚至有区别。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

如果我错了,请纠正我,但JavaScript没有类似于C#的List / Array数据类型。然而,有阵列和对象,你的API调用很可能会返回一个对象数组,但我从来没有遇到过API.ai所以我不会伸手去拿它。

对象采用JSON格式,您可以使用阵列上的.length()函数检查数组中有多少个对象。

来自API的样本响应,例如:

[{
   title : "Title 1",
   context : "Context 1"
},
{
   title : "Title 2",
   context : "Context 2"
}]

你可以做一个简单的for循环:

for(var i = 0; i < response.length(); i++){
   response[i] // Object 
}

请注意我离开response[i]的方式,然后您可以访问给定对象的属性,例如response[i].titleresponse[i].context

旁注&amp;作为一个抬头,您可能需要在循环之前将返回的值解析为JSON,这一切都取决于您的代码。

编辑值得注意:

响应可能包含一个已分配对象数组的属性,该对象看起来类似于:

[{
   title : "Title 1",
   context : "Context 1",
   prop : [{ val : "val 1", name : "val 1" }]
},
{
   title : "Title 2",
   context : "Context 2",
   prop : [{ val : "val 2", name : "val 2" }]
}]

迭代内部数组(prop字段)对上面的for循环的简单修改:

for(var i = 0; i < response.length(); i++){
   for(var j = 0; j < response[i].prop.length(); j++){
      response[i].prop[j] // Inner Object 
   }
}