Szeregowanie groovy mapy do łańcucha z cudzysłowami
Próbuję utrwalić dobrą mapę do pliku. Moja obecna próba polega na zapisaniu reprezentacji ciągu, a następnie odczytaniu go i wywołaniuevaluate
na niej, aby odtworzyć mapę, gdy będę gotowy do jej ponownego użycia.
Mam problem z tym, żetoString()
metoda mapy usuwa istotne cytaty z wartości elementów. Kiedy oceniam mój kod, narzeka on na nieznany identyfikator.
Ten kod demonstruje problem:
m = [a: 123, b: 'test']
print "orig: $m\n"
s = m.toString()
print " str: $s\n"
m2 = evaluate(s)
print " new: ${m2}\n"
Pierwsze dwie instrukcje drukowania prawie działają - ale cytaty wokół wartości kluczab
zniknęli. Zamiast pokazywać[a: 123, b: 'test']
, to pokazuje[a: 123, b: test]
.
W tym momencie szkoda zostanie wykonana. Theevaluate
dławienie wywołania, gdy próbuje ocenićtest
jako identyfikator, a nie łańcuch.
Tak więc moje konkretne pytania:
Czy jest lepszy sposób na serializację / de-serializację map w Groovy?Czy istnieje sposób na utworzenie reprezentacji łańcuchowej mapy z odpowiednimi cudzysłowami?