Isu dengan Menukar Rentetan kepada Tatasusunan JSON
Dalam percubaan untuk menghuraikan rentetan JSON daripada perkhidmatan web ke dalam tatasusunan JSON, Android pembangun menghadapi pengecualian jenis tidak padan. Rentetan JSON yang disediakan adalah sah dan kod berikut telah digunakan:
JSONArray jsonArray = new JSONArray(readlocationFeed);
Resolusi
Isunya terletak pada jenis objek JSON yang dibuat. JSON yang diterima sebenarnya adalah objek JSON, bukan tatasusunan. Untuk menyelesaikan isu tersebut, kod tersebut hendaklah diubah suai seperti berikut:
JSONObject jsonObject = new JSONObject(readlocationFeed); JSONArray jsonArray = jsonObject.getJSONArray("locations");
Ini akan mencipta JSONObject daripada rentetan JSON dan kemudian mendapatkan tatasusunan "lokasi" daripadanya. Tatasusunan kemudiannya boleh diulang untuk mengakses objek lokasi individu. Berikut ialah kod yang disemak:
JSONObject jsonObject = new JSONObject(readlocationFeed); JSONArray jsonArray = jsonObject.getJSONArray("locations"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject locationObject = jsonArray.getJSONObject(i); }
Atas ialah kandungan terperinci Mengapa Penukaran String-ke-JSONArray Saya Gagal dalam Android, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!