miércoles, junio 22, 2011

Convertir de String a Map con Groovy

La idea es poder evaluar Strings del tipo: "a1:b1,a2:b2,..." a Mapas en Groovy, donde ai, bi son Strings que no contengan ',' ni ':'.

Primero hay que agregar el método al operador leftShift de la metaclase del mapa, para que podamos usar el operador leftShift:

LinkedHashMap.metaClass.leftShift << {
String it -> def p = it.split(','); p.each { putAt(*it.split(':')) }
}

Ahora podremos usar el operador para generar mapas a partir de Strings:

String mapa = "a:b,number:123456,hello:good bye" // el string a convertir
def m = [:] // mapa vacío
m << mapa // agregamos el string al mapa
assert m == [a:'b',number:'123456',hello:'good bye'] // probamos que se generó bien

Así de simple es Groovy :)

No hay comentarios.:

Publicar un comentario