لديك صيغة JSON تحتوي على مصفوفة من المصفوفات، وتحاول تحليل العناصر الفردية فيها. المشكلة تكمن في كيفية الوصول إلى العناصر الفردية في الدورة التكرارية. في حلقتك التكرارية الخارجية، عليك استخدام متغير i
للوصول إلى العنصر الخارجي، ولكن داخل الحلقة الداخلية التي تكرر عبر userEwallets
، يجب عليك استخدام متغير j
بدلاً من i
لأن userEwallets
هو مصفوفة جديدة تحتوي على عناصر مختلفة.
هناك بعض التعديلات التي يجب إجراؤها على كودك ليعمل بشكل صحيح:
javafor (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
بشكل منفصل.
الكود الصحيح يبدو كما يلي:
javafor (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 الخاصة بك.