Create new array from found values in array (JSON+Groovy) -
मेरे पास एक सरणी है:
आर = [[अवधि: [मूल्य: [x] उदाहरण के लिए: 1, दिनांक: 2011, न्यूपीस: 1.000], प्राइसक्स: [प्राइस: 2, दिनांक: 2012, न्यूपीस: 1.000]]]]] तत्वों के मूल्यों के साथ मुझे नया सरणी बनाने की आवश्यकता है:
दिनांक = [2011, 2012] (तिथि इस सरणी से कहीं भी मौजूद हो सकती है)। मैं चक्र में पथ द्वारा बना सकता हूँ:
आयात करें groovy.json.JsonSlurper def R = newJsonSlurper ()। ParseText (String.valueOf (messageExchange.getResponseContent ())); एम = आर। अवधि का आकार = एम.size () DEF तिथियाँ = [] के लिए (i 0 में .. (आकार-1)) {def y = M [i] तिथि dates.add (y)} लेकिन शायद मैं विधियों findAll () या किसी अन्य द्वारा सरणी बना सकता हूँ?
प्रतिक्रिया:
{"f": {"stan": {"form": {"fin": {"period": [{"periodiod": "" "" "" "" "" "," पीरियोडफ़ ": {" पीरियोडफ़ ": [{" पीरियडएंडडेट ":" 2013-10-10 "," पीरियडफाइलिंग ": {" सी ": {" एक्स ":" बी "," "" "" "" "" "" "" "" "" "" "," रिपोर्ट किया गया ":" बी "}," अंतिम ":" 1 "," या ":" 2014-01: 47: 00 "," इकाइयों ": {" X ":" M " "" "" "" "": "" "" "" "," अवधि ":" ए "," SDate ":" 2013-12-31 "," स्टेट ": {" स्टेट ": [{" Fi ": {" FV " : "[1]", "डी": "2013-12 -31 "," एस ": {" पूर्ण ":" 1 "," सी ": {" एक्स ":" बी "," सीआरटीए ":" 1 "," एक्स ":" बी "}}}]} }]}}, {"पीरियडएंड": "2011-12-31", "पीरियड": {"पीरियड": [{"पीरियडएंडडेट": "2012-10-10", "पीरियड": {"क्यू": "" "": "बीएल", "रेप": "1.00", "आर": "बीएल"}, "अंतिम": "1", "मूल": "2014-01: 47", "इकाइयों": {"एक्स": "एम", "आर": "एम"}}, "पीरियड": "ए", "स्टेटडेट": "2013-12-31", "स्टेट": {"स्टेट": [ "फिन": {"एफवी": [{"सी": "आर", "वी": "1.000000"}}, "पीरियडएन्ड": "2013-12-31", "पीरियड": "ए" "डी": "2013-12-31", "वक्तव्य": {"पूर्ण": "1", "मुद्राएं": {"X": "B", "C": "1", "X": "बी"}}}}}}}}}] }}}}}}
दिया गया:
Def arr = [[अवधि: [मूल्य: [x: 1, दिनांक: 2011, न्यूपीस: 1.000], प्राइसक्स: [प्राइसवाई: 2, दिनांक: 2012, न्यूपीस: 1.000]]]] आप ऐसा कर सकते हैं:
def दिनांक = arr.Pieriod.collectMany {it.collect {k, v - & gt; V.Date}} दिनांक == [2011, 2012] या
डीआरएफ तिथियां = arr.Period * .values () तिथि पर जोर दें। JSON पोस्ट के बाद संपादित करें: तो हम आपको PeriodEnd चाहते हैं, तो आप ऐसा कर सकते हैं: पूर्व> नया JsonSlurper ()। ParseText (प्रतिक्रिया) .F.Stan .फ़ॉर्मेशन .फ़िन .पीरियड। या यदि आप चाहते हैं कि StatDate तब आप कर सकते हैं: नया JsonSlurper ()। ParseText (प्रतिक्रिया) .F.Stan .फ़ॉर्मेशन .फ़िन .पीरियोड .PeriodFilings .PeriodFiling .StatDate.flatten () संपादित करें # 2
या आप खोज को कार्यान्वित कर सकते हैं:
सूची को खोजने के लिए (मैप, कुंजी) {map.findResults {k, v - & gt; अगर (कश्मीर == कुंजी) वी और यदि (मैप का उदाहरण) खोजों (वी, कुंजी) और अगर (v उदाहरण के संग्रह का) v.collectMany {खोज (यह, कुंजी)} {नल}। फ्लेटन ()} मिलते हैं डेटा, 'पीरियडएंडडेट') == ['2013-10-10', '2012-10-10']
Comments
Post a Comment