在IBM Conversation中,如果我们创建一个包含其他数组(如实体)的上下文变量数组,则它将成为一个字符串数组。根据文档,您不能在字符串阵列上执行数组方法,如size()
或length()
。任何方式来执行字符串数组的这些功能?如何在IBM对话中的字符串数组上应用数组方法
回答
Watson对话服务中的数组和字符串类型有所不同。要获取有关数组大小的信息 - 即获取有关数组类型包含的元素数量的信息,可以使用size()
方法。
对于获取关于字符串中字符数的信息的字符串类型,可以使用length()
方法。
这里是两个例子。该字符串看起来像一个数组,但它是一个字符串(由引号""
封闭注意数组类型缺少引号是:
{
"context": {
"my_string" : "[\"one\", \"two\", \"three\"]",
"my_array": [
"one",
"two",
"three"
]
},
"output": {
"text": {
"values": [
"This is string size: <?$my_string.length()?>. This is my array size: <? context.my_array.size()?>"
],
"selection_policy": "sequential"
}
}
}
这里是从对话框中选择答案: This is string size: 23. This is my array size: 3
功能length()
为支持字符串类型。 功能size()
上支持数组类型。
这是一个WCS doc的'size()'方法的链接:https://console.bluemix.net/docs/services/conversation/dialog-methods.html#methods-to-process-values –
嗨Michal,我的查询实际上与“字符串数组”有关,这些数组是包含在Conversation doc中定义的数组的数组。如果数组是:“$ array:[”one“,”two“] 然后 - > $ string_array:”string array:[\“one \”,\“two \”]“ 随后可以在$ array变量上执行数组方法,例如<?$ array.removeValue('two')?>但不是$ string_array变量。“ –
啊我明白了。我被名字中的数组混淆了。 :)所以'string_array'是字符串类型的inf事实...我已经更新了答案。 –
我觉得文档中的例子可能会混淆你。
您可以嵌套数组,甚至字符串数组,仍然可以将它们作为数组数据类型进行操作。您在文档中引用的示例的目的是显示如果在对话框响应中包含数组上下文变量作为字符串的一部分,则该数组将被视为字符串数据类型。
例如,你可以在JSON编辑器对话框节点指定此:
{
"context": {
"array": [
"one",
"two"
],
"array_of_strings": [
"<? $array ?>",
"three",
"four"
],
"string_array": "this is an array: $array"
},
当您执行的“尝试一下”面板中的节点,然后检查上下文变量的值,它们是这样的:
$array
["one","two"]
$array_of_strings
[["one","two"],"three","four"]
$string_array
"this is an array: [\"one\",\"two\"]"
注:我能够包括第一阵列作为我$array_of_strings
上下文变量数组的数据类型。直到我将数组包含在一个字符串中,它就像一个字符串一样。我希望这是有道理的?
- 1. 如何调用C#中的主要字符串数组方法#
- 2. 字符串覆盖对方的数组?
- 3. Json对字符串数组的响应
- 4. 字符串数组到对象数组
- 5. 找到字符串数组中字符串的最快方法
- 6. 字符串数组的删除方法
- 7. 返回字符串的方法数组
- 8. 如何在方法中打印字符串数组
- 9. Android在另一个方法上使用字符串数组
- 10. 任何将字符串数组转换为字符数组的方法?
- 11. 如何优化对字符串数组数组的搜索?
- 12. 如何基于数组中的字符串访问方法?
- 13. 反向字符串数组w /方法
- 14. 如何转换的字符数组字符串数组
- 15. 如何用新字符串替换数组中的字符串?
- 16. 将字符串数组与字符串结合的方法
- 17. 字符串数组中的字符串
- 18. 如何将字符串转换为数组中的字符串数组
- 19. 如何将数组转换为字符串数组在android中
- 20. 数组对字符串的键引用?
- 21. 如何使用以下方法反转字符串数组?
- 22. 如何对字典数组中的数组应用过滤器?
- 23. 如何使字符串startswith和equalsIgnoreCase字符串数组对象
- 24. 在排序字符串数组中使用compareToIgnoreCase()方法
- 25. 转换字符串数组为对象的数组中的R
- 26. 如何分割与字符串数组中的字符组合的数字? (eg.c1)
- 27. Python:如何将字符串数组转换为数组数组?
- 28. 如何在字符串中查找字符串数组?
- 29. 如何检查在字符串数组存在的字符串
- 30. 如何在Java中创建一个包含字符串,字符串数组和int数组的对象?
我在这里有一些例子https://github.com/IBM-Bluemix/watson-conversation-variables另外,你可以添加一个例子给你有问题吗? –