如何将此String变量转换为List?
String
List
def ids = "[10, 1, 9]"
我试探着:作为List和toList();
toList();
rqmkfv5c1#
def l = Eval.me(ids)
取groovy代码的字符串(在本例中为“[10,1,9]”),并将其计算为groovy。这将给予你一个包含3个int的列表。
i7uaboj42#
def l = ids.split(',').collect{it as int}
c0vxltue3#
使用内建的JsonSlurper!
Using Eval could beriskyas it executes any code,字符串操作解决方案一旦改变数据类型就会失败,因此不具有适应性,所以最好使用JsonSlurper。
Eval
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]
sh7euo9m4#
这对我来说确实有效。而且Eval.me在Jenkins groovy脚本中不起作用。我已经试过了。
Eval.me
assert "[a,b,c]".tokenize(',[]') == [a,b,c]
4条答案
按热度按时间rqmkfv5c1#
取groovy代码的字符串(在本例中为“[10,1,9]”),并将其计算为groovy。这将给予你一个包含3个int的列表。
i7uaboj42#
c0vxltue3#
使用内建的JsonSlurper!
Using
Eval
could beriskyas it executes any code,字符串操作解决方案一旦改变数据类型就会失败,因此不具有适应性,所以最好使用JsonSlurper。sh7euo9m4#
这对我来说确实有效。而且
Eval.me
在Jenkins groovy脚本中不起作用。我已经试过了。