web-dev-qa-db-fra.com

Convertir une variable chaîne en liste [Groovy]

Comment puis-je convertir cette variable String en List?

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

J'ai essayé avec: as List et toList();

20
user2068981
def l = Eval.me(ids)

Prend la chaîne de code groovy (dans ce cas "[10,1,9]") et l'évalue comme groovy. Cela vous donnera une liste de 3 pouces.

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

Utilisez la fonction intégrée JsonSlurper !

L'utilisation de Eval n'est pas la meilleure solution dans la plupart des cas et la solution de manipulation de chaîne échouera une fois que le type de données aura été modifié et ne sera donc pas adaptable. Il est donc préférable d'utiliser JsonSlurper .

import groovy.json.JsonSlurper

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

assert 10 == idList[0]
13
Alexander Suraphel

Cela fonctionne pour moi. Et Eval.me ne fonctionnera pas dans le script groovy de Jenkins. J'ai essayé.

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