Sto provando a mantenere una mappa groovy in un file. Il mio attuale tentativo è quello di scrivere la rappresentazione della stringa e poi leggerla di nuovo e chiamare evaluate
su di esso per ricreare la mappa quando sono pronto per usarlo di nuovo.Serializzare la mappa groovy con le virgolette con le virgolette
Il problema che sto avendo è che il metodo toString()
della mappa rimuove le virgolette vitali dai valori degli elementi. Quando le mie chiamate di codice vengono valutate, si lamenta di un identificatore sconosciuto.
Questo codice viene illustrato il problema:
m = [a: 123, b: 'test']
print "orig: $m\n"
s = m.toString()
print " str: $s\n"
m2 = evaluate(s)
print " new: ${m2}\n"
Le prime due istruzioni di stampa quasi di lavoro - ma le virgolette attorno al valore per la chiave b
se ne sono andati. Invece di mostrare [a: 123, b: 'test']
, mostra [a: 123, b: test]
.
A questo punto il danno è fatto. La chiamata evaluate
indebita quando tenta di valutare test
come identificatore e non una stringa.
Quindi, le mie domande specifiche:
- C'è un modo migliore per serializzare/de-serializzare mappe in Groovy?
- C'è un modo per produrre una rappresentazione di stringa di una mappa con le virgolette appropriate?
aggiungere def per le persone che tagliano e incollano;) – orbfish