Groovy: ¿no hay un stringToMap fuera de la caja?
como desarrollador de tcl que comienza con groovy, estoy un poco sorprendido por la lista y el soporte de mapas en groovy. Tal vez me estoy perdiendo algo aquí.
Estoy acostumbrado a convertir entre cadenas, listas y matrices / mapas en tcl sobre la marcha. En tcl, algo como
"['a':2,'b':4]".each {key, value -> println key + " " + value}
sería posible, donde como en groovy, cada comando pasa a través de cada carácter de la cadena.
Esto sería un gran problema si pudiera usar fácilmente algo como el comando dividir o tokenizar, pero debido a que una lista o mapa serializado no es solo "a: 2, b: 4", es un poco más difícil de analizar.
Parece que los desarrolladores de griffon usan una biblioteca stringToMap (http://code.google.com/p/stringtomap/) pero el ejemplo tampoco puede hacer frente a los mapas serializados.
Entonces mi pregunta es ahora: ¿cuál es la mejor manera de analizar un mapa o una lista en groovy?
Saludos, Ralf
PD: es una pregunta maravillosa, pero la he etiquetado con griales, porque necesito esta funcionalidad para griales donde me gustaría pasar mapas a través de la URL
Actualizar: Esta sigue siendo una pregunta abierta para mí ... así que aquí hay algunas actualizaciones para aquellos que tienen el mismo problema:
cuando conviertes un mapa en una cadena, un.toString()
resultará en algo que no se puede volver a convertir en un mapa en todos los casos, pero un.inspect()
¡te dará una Cadena que se puede evaluar de nuevo en un mapa!en Grails, hay un.encodeAsJSON()
yJSON.parse(String)
- Ambos funcionan muy bien, pero aún no he comprobado qué hará el analizador con las funciones JSON (posible problema de seguridad)