Saya sedang membangun aplikasi android yang perlu mengunduh dan menyinkronkan dengan database online, saya mengirimkan permintaan saya dari aplikasi ke halaman php yang mengembalikan baris yang relevan dari database dalam format JSON.
bisakah seseorang tolong beri tahu saya cara terbaik untuk beralih melalui array JSON?
Saya menerima berbagai objek:
[{json object},{json object},{json object}]
Apa potongan kode paling sederhana yang bisa saya gunakan untuk mengakses JSONObjects dalam array?
EDIT: sekarang saya memikirkannya metode yang saya gunakan untuk mengulangi loop itu:
for (String row: json){
id = row.getInt("id");
name = row.getString("name");
password = row.getString("password");
}
Jadi saya kira saya bisa mengubah Json yang dikembalikan menjadi dan array yang dapat diubah. Adakah ide bagaimana saya bisa mencapai ini?
Saya minta maaf atas vaguness saya tetapi saya memiliki ini bekerja dari contoh yang saya temukan di web dan sejak itu tidak dapat menemukannya.
Jawaban:
Saya telah melakukannya dengan dua cara berbeda,
1.) membuat Peta
2.) membuat JSONArray nama
sumber
Saya pikir kode ini singkat dan jelas:
Itukah yang kamu cari?
sumber
Sayangnya,
JSONArray
tidak mendukungforeach
pernyataan, seperti:sumber
Ketika saya mencoba saran @ vipw, saya dihadapkan dengan pengecualian ini:
The method getJSONObject(int) is undefined for the type JSONArray
Ini bekerja untuk saya sebagai gantinya:
sumber
Jika Anda menggunakan implementasi Java JSON.org , yang merupakan open source, Anda bisa membuat JSONArray mengimplementasikan
Iterable
antarmuka dan menambahkan metode berikut ke kelas:Ini akan membuat semua instance JSONArray iterable, artinya
for (Object foo : bar)
sintaks sekarang akan bekerja dengannya (perhatikan bahwa foo harus menjadi Object, karena JSONArrays tidak memiliki tipe yang dideklarasikan). Semua ini berfungsi karena kelas JSONArray didukung oleh ArrayList sederhana, yang sudah dapat diubah. Saya membayangkan bahwa implementasi open source lainnya akan mudah diubah.sumber
Pada Array, cari:
sumber
Anda menggunakan objek Cast yang sama untuk setiap entri. Pada setiap iterasi, Anda hanya mengubah objek yang sama dan bukan membuat yang baru.
Kode ini harus memperbaikinya:
sumber
Sementara iterasi melalui array JSON (org.json.JSONArray, dibangun di Android), hati-hati terhadap objek nol ; misalnya, Anda bisa mendapatkan string
"null"
bukan null .Cek mungkin terlihat seperti:
sumber