java - How to Parse JSON with dynamic Keyname? -


मेरे पास इस तरह एक JSON प्रतिक्रिया है।

  {"सरणी": [ ऑब्जेक्ट 1 ": {" एए ":" एवल्यू ":" एवल्यू "," बीबी ":" एवल्यू 2 "," सीसी ":" एवल 2 "}}, {" ऑब्जेक्ट 2 ": {" एए ":" एवल्यू "," बीबी ":" एवल्यू 5 "," Cc ":" somevalue6 "}}]}  

अब मैं ऊपर प्रतिक्रिया से एक JSON सरणी प्राप्त कर सकता हूँ। मैं मान aa , bb , cc ऑब्जेक्ट से object1 और object2 पढ़ना चाहता हूँ लूप के लिए

JSON गतिशील है, मेरा मतलब है कि object2 भी object1 से पहले प्रदर्शित हो सकता है (रिवर्स क्रम में ) और संभावना है कि मुझे एक ही संरचना के साथ एक और ऑब्जेक्ट ( object3 ) या केवल एक ( object1 या object2 या Object3 )।

मुझे ऐसा करना नहीं चाहिए क्योंकि मैं इन में विफल रहा हूं:

  JSONArray jsonArray = json.getJSONArray ("array"); के लिए (int i = 0; i & lt; jsonArray.length (); i ++) {JSONObject jsonObject = jsonArray.getJSONObject (i) .getJSONObject ("object1"); }  

तो मेरा प्रश्न यह है कि कैसे मैं उन मानों को aa , bb , cc को बिना किसी आधार के पढ़ सकता हूँ ऑब्जेक्ट नाम या ऑब्जेक्ट की संख्या ( object1 या object2 या object3 ) पर?

ऐसा लगता है कि सरणी में प्रत्येक आइटम में केवल 1 कुंजी / मान जोड़ी है, जो कि एक और जेसन ऑब्जेक्ट रखती है जिसके बाद कई हैं।

यदि यह है तो आप संभवतः ऐसा कुछ कर सकते हैं:

  के लिए (int i = 0; i & lt; jsonArray.length (); i ++) {JSONObject jsonObject = jsonArray.getJSONObject (i) ; JSONObject innerObject = jsonObject.getJSONObject (jsonObject.keys)। अगला ()। ToString ());  

आप लपेटन वस्तु में पहली कुंजी को पकड़ लेते हैं, और उस आंतरिक जेसन ऑब्जेक्ट को पकड़ने के लिए उपयोग करते हैं।


Comments