मेरे पास इस तरह एक 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
Post a Comment