البرمجة

حل مشكلة تحليل JSON متداخل في Java

لديك صيغة JSON تحتوي على مصفوفة من المصفوفات، وتحاول تحليل العناصر الفردية فيها. المشكلة تكمن في كيفية الوصول إلى العناصر الفردية في الدورة التكرارية. في حلقتك التكرارية الخارجية، عليك استخدام متغير i للوصول إلى العنصر الخارجي، ولكن داخل الحلقة الداخلية التي تكرر عبر userEwallets، يجب عليك استخدام متغير j بدلاً من i لأن userEwallets هو مصفوفة جديدة تحتوي على عناصر مختلفة.

هناك بعض التعديلات التي يجب إجراؤها على كودك ليعمل بشكل صحيح:

java
for (int i = 0; i < response.length(); i++) { try { JSONArray jsonArray = response.getJSONArray(i); for (int j = 0; j < jsonArray.length(); j++) { JSONObject jsonObject = jsonArray.getJSONObject(j); final String mobileNumber = jsonObject.getString("mobileNumber"); final String contactUserId = jsonObject.getString("contactUserId"); JSONArray ewallets = jsonObject.getJSONArray("userEwallets"); for (int k = 0; k < ewallets.length(); k++) { JSONObject ewalletObject = ewallets.getJSONObject(k); final String accountNumber = ewalletObject.getString("accountNumber"); Log.e("MobileNumber ", mobileNumber); Log.e("accountNumber ", accountNumber); } } } catch (JSONException e) { e.printStackTrace(); } }

هذا الكود يقوم بالتحليل الصحيح لكل عنصر في المصفوفة الخارجية، وبعد ذلك يتكرر عبر عناصر userEwallets في كل عنصر.

المزيد من المعلومات

لديك JSON تحتوي على مصفوفة من المصفوفات، وتريد استخراج البيانات من هذه المصفوفات بشكل صحيح. الكود الذي كتبته يحتاج إلى بعض التعديلات ليعمل بشكل صحيح. يجب استخدام متغير j في الحلقة الداخلية للوصول إلى userEwallets بدلاً من استخدام i، لأن userEwallets هو مصفوفة جديدة.

بعد ذلك، تحتاج إلى استخدام getJSONObject(j) بدلاً من getJSONObject(i) لاستخراج كل عنصر userEwallets بشكل منفصل.

الكود الصحيح يبدو كما يلي:

java
for (int i = 0; i < response.length(); i++) { try { JSONArray jsonArray = response.getJSONArray(i); for (int j = 0; j < jsonArray.length(); j++) { JSONObject jsonObject = jsonArray.getJSONObject(j); final String mobileNumber = jsonObject.getString("mobileNumber"); final String contactUserId = jsonObject.getString("contactUserId"); JSONArray ewallets = jsonObject.getJSONArray("userEwallets"); for (int k = 0; k < ewallets.length(); k++) { JSONObject ewalletObject = ewallets.getJSONObject(k); final String accountNumber = ewalletObject.getString("accountNumber"); Log.e("MobileNumber ", mobileNumber); Log.e("accountNumber ", accountNumber); } } } catch (JSONException e) { e.printStackTrace(); } }

هذا الكود يتيح لك استخراج البيانات بشكل صحيح من المصفوفة JSON الخاصة بك.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر