我試圖將groovy映射保存到文件。我目前的嘗試是寫出字符串表示,然後再讀取它,並在其上調用evaluate
以在我準備再次使用它時重新創建地圖。序列化groovy映射到帶引號的字符串
我遇到的問題是地圖的toString()
方法會從元素的值中刪除重要的引號。當我的代碼調用評估時,它會抱怨未知的標識符。
此代碼演示了此問題:
m = [a: 123, b: 'test']
print "orig: $m\n"
s = m.toString()
print " str: $s\n"
m2 = evaluate(s)
print " new: ${m2}\n"
前兩個print語句幾乎工作 - 但圍繞着價值的報價爲重點b
都不見了。它不顯示[a: 123, b: 'test']
,而是顯示[a: 123, b: test]
。
此時傷害已完成。當evaluate
嘗試評估test
作爲標識符而不是字符串時調用扼流圈。
所以,我的具體問題:
- 有沒有更好的方式來序列化/ Groovy中去序列化映射?
- 有沒有一種方法可以用正確的引號生成地圖的字符串表示?
add def's for cutting and pasteing;) – orbfish