如何将此String
变量转换为List
?
def ids = "[10, 1, 9]"
我试过: asList
和toList();
def l = Eval.me(ids)
获取 groovy 代码字符串(在本例中为“[10,1,9]”)并将其评估为 groovy。这将为您提供 3 个整数的列表。
def l = ids.split(',').collect{it as int}
使用内置的JsonSlurper!
使用Eval
是危险的,一旦更改数据类型,字符串操作解决方案就会失败,因此它不适应。所以最好使用JsonSlurper。
import groovy.json.JsonSlurper
//List of ints
def ids = "[10, 1, 9]"
def idList = new JsonSlurper().parseText(ids)
assert 10 == idList[0]
//List of strings
def ids = '["10", "1", "9"]'
idList = new JsonSlurper().parseText(ids)
assert '10' == idList[0]
这对我有用。并且Eval.me
不适用于 Jenkins groovy 脚本。我试过了。
assert "[a,b,c]".tokenize(',[]') == [a,b,c]