25

如何将此String变量转换为List

def ids = "[10, 1, 9]"

我试过: asListtoList();

4

4 回答 4

34
def l = Eval.me(ids)

获取 groovy 代码字符串(在本例中为“[10,1,9]”)并将其评估为 groovy。这将为您提供 3 个整数的列表。

于 2013-02-28T20:20:12.707 回答
27
def l = ids.split(',').collect{it as int}
于 2013-02-28T00:10:43.870 回答
25

使用内置的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]
于 2015-04-16T12:41:13.183 回答
9

这对我有用。并且Eval.me不适用于 Jenkins groovy 脚本。我试过了。

assert "[a,b,c]".tokenize(',[]') == [a,b,c]
于 2019-03-23T04:56:26.467 回答