我習慣於C#而不是JS,所以如果我無知但是我想通過從API.ai發送的列表做一個foreach循環,並且我不知道它是否是一個固定的長度數組或列表,或者甚至Javascript中的兩者之間的區別。在api.ai中,當'isList'參數發送到webhook時,它的格式是什麼?
我該怎麼做呢?
我習慣於C#而不是JS,所以如果我無知但是我想通過從API.ai發送的列表做一個foreach循環,並且我不知道它是否是一個固定的長度數組或列表,或者甚至Javascript中的兩者之間的區別。在api.ai中,當'isList'參數發送到webhook時,它的格式是什麼?
我該怎麼做呢?
糾正我,如果我錯了,但JavaScript沒有類似於C#的List/Array數據類型。然而,有數組和對象,你的API調用很可能會返回一個對象數組,但我從來沒有遇到過API.ai,所以我不會爲此付出代價。
對象是JSON格式,您可以使用陣列上的.length()
函數檢查陣列中有多少個對象。
與API的樣品反應,如這樣的:
[{
title : "Title 1",
context : "Context 1"
},
{
title : "Title 2",
context : "Context 2"
}]
您可以循環做一個簡單:
for(var i = 0; i < response.length(); i++){
response[i] // Object
}
注意我怎麼離開response[i]
,您則可以訪問給定的性質對象,如response[i].title
或response[i].context
。
在旁註&作爲頭條,你可能需要在循環之前將你的返回值解析爲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" }]
}]
爲了迭代內陣列上(丙字段)一個簡單修改我們的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
}
}
謝謝。我查看了與它一起發送的JSON文件,你是對的,它是一個簡單的數組來迭代。 – doggoz