2013-02-28 15 views
16

Wie kann ich diese String Variable in eine List konvertieren?Stringvariable in eine Liste konvertieren [Groovy]

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

Ich habe versucht, mit: als List und toList();

+0

Es ist schon eine Liste in groovy? –

+0

Dies ist eine 'List' Möchten Sie sie in eine' String' konvertieren? – Reimeus

+0

Aber wenn ich ids.each {it println} Ich habe dieses Ergebnis: [
,

]
user2068981

Antwort

18
def l = Eval.me(ids) 

die Zeichenfolge von groovy Code nimmt (in diesem Fall "[10,1,9]") und wertet sie als groovy . Dies wird Ihnen eine Liste von 3 Ints geben.

+2

http://www.jameswiseman.com/blog/2011/01/18/jslint-messages-eval-is-evil/ –

15
def l = ids.split(',').collect{it as int} 
+0

Ich glaube, Sie einen String machen wollen "10,1,9" in eine Liste [10,1,9] –

+0

def id = idsstring (1, ids.length() - 1) def l = id.split (','). Collect { es als int} – user2068981

+1

Ich finde diese Lösung, aber ich glaube nicht, ist das beste: def id = idsstring (1, ids.length() - 1) def l = id.split (','). Collect {it als int} – user2068981

7

Verwenden Sie JsonSlurper!

Using Eval is not the best solution in most cases und die Lösung zur Bearbeitung von Strings schlägt fehl, sobald der Datentyp geändert wurde, sodass er nicht angepasst werden kann. Verwenden Sie daher am besten JsonSlurper.

import groovy.json.JsonSlurper 

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

assert 10 == idList[0] 
Verwandte Themen