Serialización del mapa maravilloso a la cadena con comillas

Estoy tratando de persistir un mapa maravilloso en un archivo. Mi intento actual es escribir la representación de cadena y luego leerla nuevamente y llamarevaluate en él para recrear el mapa cuando esté listo para usarlo de nuevo.

El problema que tengo es que eltoString() El método del mapa elimina las citas vitales de los valores de los elementos. Cuando mi código de llamadas evalúa, se queja de un identificador desconocido.

Este código demuestra el problema:

m = [a: 123, b: 'test']
print "orig: $m\n"

s = m.toString()
print " str: $s\n"

m2 = evaluate(s)
print " new: ${m2}\n"

Las dos primeras declaraciones de impresión casi funcionan, pero las comillas alrededor del valor de la claveb se fueron. En lugar de mostrar[a: 123, b: 'test'], muestra[a: 123, b: test].

En este punto el daño está hecho. losevaluate llamar a los estrangulamientos cuando trata de evaluartest como un identificador y no una cadena.

Por lo tanto, mis preguntas específicas:

¿Hay una mejor manera de serializar / des-serializar mapas en Groovy?¿Hay una manera de producir una representación de cadena de un mapa con las comillas correctas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta