当前位置: 首页 > 知识库问答 >
问题:

Karate-带字符串和数组的条件逻辑

顾喜
2023-03-14

这个问题源于前面提出的这个问题。我正在发出一个Soap请求,并以数组或字符串的形式接收响应。

[print] [   "M4205N",   "M4206U" ]

[print] M5967H

当我以数组形式获得响应时,我想出了如何循环遍历它,并将值传递给另一个请求。但是,有时响应会以单个代码的形式返回,并且会以字符串的形式返回。在这种情况下,我无法执行与数组相同的逻辑。我读过空手道条件逻辑,但我不知道如何让它做我想做的。

我想这样做:若响应作为字符串返回,则使用一个值调用此方法。如果响应作为数组返回,则调用此方法并传递数组中的每个值。

这是我心中的方法之一,但由于类型差异,它不起作用:

* def memberCodes = memberCodes.size() > 1 ? karate.mapWithKey(memberCodes, 'memberCode') : {}
* def result = call read('OtherRequest.feature') memberCodes

如果响应以数组的形式返回,这是可行的,但很明显,如果它以字符串的形式返回,它将中断。

执行此条件逻辑的正确方法是什么?此外,如有必要,请参考我的前一个问题以了解更多背景。谢谢

共有1个答案

左丘积厚
2023-03-14

有趣。如果(不是)字符串,此检查应该适用于测试:

* def memberCodes = typeof memberCodes != 'string' ? karate.mapWithKey(memberCodes, 'memberCode') : {}

也参考这个有点相关的问题:https://stackoverflow.com/a/58543843/143475

 类似资料:
  • 字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似: 单双引号的区别: 双引号里可以有变量,单引号则原样输出; 双引号里可以出现转义字符,单引号则原样输出; 单引号字串中不能出现单引号。 拼接字符串 #!/bin/bash str1='i' str2='love' str3

  • 问题内容: 是否可以在Python数组中使用字符串作为索引? 例如: 问题答案: 您想要的称为关联数组。在python中,这些被称为字典。 词典有时在其他语言中被称为“关联记忆”或“关联数组”。与用数字范围索引的序列不同, 字典是用键索引的,键可以是任何不可变的类型 ;字符串和数字始终可以是键。 创建上述字典的另一种方法: 访问值: 获取密钥(在Python v2中): 在Python 3中,您将

  • 问题内容: 如果我要搜索的主数组是,它将只将该数组过滤为。 这是我尝试过的: 它抛出 有什么建议? 问题答案: 使用来代替: 输出量 [“ Hello”,“ Halo”] 感谢@ user3441734指出,功能仅在您使用时才可用

  • 问题内容: 我是一名刚从C ++转到Java的学生。 在Java中,为String和Char数组定义单独的数据类型的主要原因可能是什么? 两者有什么区别? 由于我只学习过C ++,所以直到现在我仍对它们有同感。请尽可能澄清。 问题答案: 是一成不变的。数组不是。字符串是在下面用char数组实现的,但是每次您尝试对其进行修改(例如,使用串联,替换等)时,它都会为您提供一个 新 对象。 因此,它表现为

  • 问题内容: 我有阵列 转换为字符串: 串: 以及如何将此字符串转换回数组? 问题答案: 尝试我的stringToDeep()方法转换回Array。