将String变量转换为List [Groovy]

use*_*981 20 java string groovy list

如何将此String变量转换为List

def ids = "[10, 1, 9]"
Run Code Online (Sandbox Code Playgroud)

我尝试过:as ListtoList();

Ric*_*ngi 27

def l = Eval.me(ids)
Run Code Online (Sandbox Code Playgroud)

采用groovy代码的字符串(在本例中为"[10,1,9]")并将其评估为groovy.这将为您提供3个整数的列表.

  • 但我不会考虑使用 Eval 作为一个安全的选择。 (4认同)
  • http://www.jameswiseman.com/blog/2011/01/18/jslint-messages-eval-is-evil/ (2认同)
  • @AlexanderSuraphel 语言错误。 (2认同)

Ser*_*nez 20

def l = ids.split(',').collect{it as int}
Run Code Online (Sandbox Code Playgroud)


Ale*_*hel 13

使用内置的JsonSlurper!

Eval在大多数情况下,使用不是最佳解决方案,一旦数据类型发生更改,字符串操作解决方案将失败,因此无法适应.所以最好使用JsonSlurper.

import groovy.json.JsonSlurper

def ids = "[10, 1, 9]"
def idList = new JsonSlurper().parseText(ids)

assert 10 == idList[0]
Run Code Online (Sandbox Code Playgroud)

  • 这绝对应该被接受为正确答案。 (2认同)

Pag*_*und 6

这确实对我有用。并且Eval.me无法在Jenkins常规脚本中使用。我试过了。

assert "[a,b,c]".tokenize(',[]') == [a,b,c]
Run Code Online (Sandbox Code Playgroud)