web-dev-qa-db-ja.com

文字列変数をリストに変換する[Groovy]

このString変数をListに変換するにはどうすればよいですか?

_def ids = "[10, 1, 9]"
_

私は試しました:ListおよびtoList();として

20
user2068981
def l = Eval.me(ids)

Groovyコードの文字列(この場合は「[10,1,9]」)を取得し、groovyとして評価します。これにより、3つのintのリストが表示されます。

24
Rick Mangi
def l = ids.split(',').collect{it as int}
19
Sergio Martinez

組み込みの JsonSlurperを使用します

ほとんどの場合、Evalを使用することは最適なソリューションではありません 。データ型が変更されると文字列操作ソリューションは失敗し、適応できなくなります。したがって、 JsonSlurper を使用するのが最善です。

import groovy.json.JsonSlurper

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

assert 10 == idList[0]
13

これは私にとってはうまくいきます。そしてEval.meはJenkinsのgroovyスクリプトでは機能しません。私が試してみました。

assert "[a,b,c]".tokenize(',[]') == [a,b,c]
2
PageNotFound