मैं इस String
वैरिएबल को List
में कैसे परिवर्तित कर सकता हूं?स्ट्रिंग वैरिएबल को एक सूची में कनवर्ट करें [ग्रोवी]
def ids = "[10, 1, 9]"
मैं के साथ की कोशिश की: List
के रूप में और toList();
मैं इस String
वैरिएबल को List
में कैसे परिवर्तित कर सकता हूं?स्ट्रिंग वैरिएबल को एक सूची में कनवर्ट करें [ग्रोवी]
def ids = "[10, 1, 9]"
मैं के साथ की कोशिश की: List
के रूप में और toList();
def l = Eval.me(ids)
(इस मामले में "[10,1,9]") ग्रूवी कोड की स्ट्रिंग लेता है और यह रूप में ग्रूवी का मूल्यांकन करता है । यह आपको 3 इंट्स की एक सूची देगा।
http://www.jameswiseman.com/blog/2011/01/18/jslint-messages-eval-is-evil/ –
def l = ids.split(',').collect{it as int}
मुझे लगता है कि आप एक स्ट्रिंग बनाना चाहते सूची में "10,1,9" [10,1,9] –
डीफ़ आईडी = ids.substring (1, ids.length() - 1) def l = id.split (',') संग्रह { यह int के रूप में} – user2068981
मुझे यह समाधान मिल गया है लेकिन मुझे नहीं लगता कि यह सबसे अच्छा है: डीफ़ आईडी = ids.substring (1, ids.length() - 1) def l = id.split (',')। इसे {int के रूप में int} – user2068981
JsonSlurper का उपयोग करें!
Using Eval
is not the best solution in most cases और डेटा प्रकार बदलने के बाद स्ट्रिंग मैनिपुलेशन समाधान विफल हो जाएगा, इसलिए यह अनुकूल नहीं है। तो JsonSlurper का उपयोग करना सबसे अच्छा है।
import groovy.json.JsonSlurper
def ids = "[10, 1, 9]"
def idList = new JsonSlurper().parseText(ids)
assert 10 == idList[0]
यह पहले से ही ग्रोवी में एक सूची है? –
यह एक 'सूची' है जिसे आप इसे 'स्ट्रिंग' में परिवर्तित करना चाहते हैं? – Reimeus
लेकिन जब मैं ids.each करना {यह println} मैं इस परिणाम है: [ , ] – user2068981