मैं एक फ़ाइल में एक groovy नक्शा जारी रखने की कोशिश कर रहा हूँ। मेरा वर्तमान प्रयास स्ट्रिंग प्रस्तुति को लिखना है और उसके बाद इसे फिर से पढ़ने के लिए तैयार होने पर मानचित्र को फिर से बनाने के लिए evaluate
पर कॉल करें और उसे कॉल करें।उद्धरण के साथ स्ट्रिंग करने के लिए groovy नक्शा Serializing
मेरी समस्या यह है कि toString()
मानचित्र की विधि तत्वों के मूल्यों से महत्वपूर्ण उद्धरण हटा देती है। जब मेरा कोड मूल्यांकन करता है, तो यह अज्ञात पहचानकर्ता के बारे में शिकायत करता है। लेकिन मूल्य के आसपास उद्धरण कुंजी b
के लिए चले गए हैं -
m = [a: 123, b: 'test']
print "orig: $m\n"
s = m.toString()
print " str: $s\n"
m2 = evaluate(s)
print " new: ${m2}\n"
पहले दो प्रिंट बयान लगभग काम:
इस कोड को समस्या को दर्शाता है। [a: 123, b: 'test']
दिखाने के बजाय, यह [a: 123, b: test]
दिखाता है।
इस बिंदु पर नुकसान हो गया है। evaluate
कॉल चोक करता है जब यह पहचानकर्ता के रूप में test
का मूल्यांकन करने की कोशिश करता है और स्ट्रिंग नहीं।
तो, मेरे विशिष्ट प्रश्न:
- वहाँ क्रमानुसार करने/ग्रूवी में de-क्रमानुसार नक्शे एक बेहतर तरीका है?
- क्या उचित उद्धरण वाले मानचित्र के स्ट्रिंग प्रस्तुति का उत्पादन करने का कोई तरीका है?
// serialize def m = [a: 123, b: 'test'] def str = m.inspect() // deserialize m = Eval.me(str)
एक और तरीका है एक ग्रूवी नक्शा क्रमानुसार करने के रूप में एक पठनीय स्ट्रिंग JSON के साथ है:
लोगों को काटने और पेस्ट करने के लिए डीफ़ जोड़ें;) – orbfish